diff --git a/1-js/05-data-types/12-json/article.md b/1-js/05-data-types/12-json/article.md index b9f825a9e3..8865c342d7 100644 --- a/1-js/05-data-types/12-json/article.md +++ b/1-js/05-data-types/12-json/article.md @@ -27,7 +27,7 @@ alert(user); // {name: "John", age: 30} ## JSON.stringify -[JSON](https://ru.wikipedia.org/wiki/JSON) (JavaScript Object Notation) - это общий формат для представления значений и объектов. Его описание задокументировано в стандарте [RFC 4627](https://tools.ietf.org/html/rfc4627). Первоначально он был создан для JavaScript, но многие другие языки также имеют библиотеки, которые могут работать с ним. Таким образом, JSON легко использовать для обмена данными, когда клиент использует JavaScript, а сервер написан на Ruby/PHP/Java или любом другом языке. +[JSON](https://ru.wikipedia.org/wiki/JSON) (JavaScript Object Notation) - это общий формат для представления значений и объектов. Его описание задокументировано в стандарте [RFC 4627](https://datatracker.ietf.org/doc/html/rfc4627). Первоначально он был создан для JavaScript, но многие другие языки также имеют библиотеки, которые могут работать с ним. Таким образом, JSON легко использовать для обмена данными, когда клиент использует JavaScript, а сервер написан на Ruby/PHP/Java или любом другом языке. JavaScript предоставляет методы: diff --git a/5-network/07-url/article.md b/5-network/07-url/article.md index 81ea342eb5..655f506b60 100644 --- a/5-network/07-url/article.md +++ b/5-network/07-url/article.md @@ -113,7 +113,7 @@ for(let [name, value] of url.searchParams) { ## Кодирование -Существует стандарт [RFC3986](https://tools.ietf.org/html/rfc3986), который определяет список разрешённых и запрещённых символов в URL. +Существует стандарт [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986), который определяет список разрешённых и запрещённых символов в URL. Запрещённые символы, например, нелатинские буквы и пробелы, должны быть закодированы -- заменены соответствующими кодами UTF-8 с префиксом `%`, например: `%20` (исторически сложилось так, что пробел в URL-адресе можно также кодировать символом `+`, но это исключение). @@ -193,7 +193,7 @@ alert(url); // https://google.com/search?q=Rock&Roll Чтобы правильно вставить параметр поиска в строку URL, мы должны использовать для него только `encodeURIComponent`. Наиболее безопасно кодировать и имя, и значение, за исключением случаев, когда мы абсолютно уверены в том, что они содержат только разрешённые символы. ````smart header="Разница в кодировании с `URL`" -Классы [URL](https://url.spec.whatwg.org/#url-class) и [URLSearchParams](https://url.spec.whatwg.org/#interface-urlsearchparams) базируются на последней спецификации URI, описывающей устройство адресов: [RFC3986](https://tools.ietf.org/html/rfc3986), в то время как функции `encode*` -- на устаревшей версии стандарта [RFC2396](https://www.ietf.org/rfc/rfc2396.txt). +Классы [URL](https://url.spec.whatwg.org/#url-class) и [URLSearchParams](https://url.spec.whatwg.org/#interface-urlsearchparams) базируются на последней спецификации URI, описывающей устройство адресов: [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986), в то время как функции `encode*` -- на устаревшей версии стандарта [RFC2396](https://www.ietf.org/rfc/rfc2396.txt). Различий мало, но они есть, например, по-разному кодируются адреса IPv6: diff --git a/5-network/11-websocket/article.md b/5-network/11-websocket/article.md index 8e412f1a79..2d3f457034 100644 --- a/5-network/11-websocket/article.md +++ b/5-network/11-websocket/article.md @@ -1,6 +1,6 @@ # WebSocket -Протокол `WebSocket` ("веб-сокет"), описанный в спецификации [RFC 6455](http://tools.ietf.org/html/rfc6455), обеспечивает возможность обмена данными между браузером и сервером через постоянное соединение. Данные передаются по нему в обоих направлениях в виде "пакетов", без разрыва соединения и дополнительных HTTP-запросов. +Протокол `WebSocket` ("веб-сокет"), описанный в спецификации [RFC 6455](https://datatracker.ietf.org/doc/html/rfc6455), обеспечивает возможность обмена данными между браузером и сервером через постоянное соединение. Данные передаются по нему в обоих направлениях в виде "пакетов", без разрыва соединения и дополнительных HTTP-запросов. WebSocket особенно хорош для сервисов, которые нуждаются в постоянном обмене данными, например онлайн игры, торговые площадки, работающие в реальном времени, и т.д. @@ -248,7 +248,7 @@ socket.onclose = event => { - `1011` -- непредвиденная ошибка на сервере, - ...и так далее. -Полный список находится в [RFC6455, §7.4.1](https://tools.ietf.org/html/rfc6455#section-7.4.1). +Полный список находится в [RFC6455, §7.4.1](https://datatracker.ietf.org/doc/html/rfc6455#section-7.4.1). Коды WebSocket чем-то похожи на коды HTTP, но они разные. В частности, любые коды меньше `1000` зарезервированы. Если мы попытаемся установить такой код, то получим ошибку. diff --git a/6-data-storage/01-cookie/article.md b/6-data-storage/01-cookie/article.md index 193216c1c8..b8294b5205 100644 --- a/6-data-storage/01-cookie/article.md +++ b/6-data-storage/01-cookie/article.md @@ -1,6 +1,6 @@ # Куки, document.cookie -Куки -- это небольшие строки данных, которые хранятся непосредственно в браузере. Они являются частью HTTP-протокола, определённого в спецификации [RFC 6265](https://tools.ietf.org/html/rfc6265). +Куки -- это небольшие строки данных, которые хранятся непосредственно в браузере. Они являются частью HTTP-протокола, определённого в спецификации [RFC 6265](https://datatracker.ietf.org/doc/html/rfc6265). Куки обычно устанавливаются веб-сервером при помощи заголовка `Set-Cookie`. Затем браузер будет автоматически добавлять их в (почти) каждый запрос на тот же домен при помощи заголовка `Cookie`. @@ -239,7 +239,7 @@ document.cookie = "user=John; secure"; Куки с `samesite=lax` отправляется, если два этих условия верны: 1. Используются безопасные HTTP-методы (например, GET, но не POST). - Полный список безопасных HTTP-методов можно посмотреть в спецификации [RFC7231](https://tools.ietf.org/html/rfc7231#section-4.2.1). По сути, безопасными считаются методы, которые обычно используются для чтения, но не для записи данных. Они не должны выполнять никаких операций на изменение данных. Переход по ссылке является всегда GET-методом, то есть безопасным. + Полный список безопасных HTTP-методов можно посмотреть в спецификации [RFC7231](https://datatracker.ietf.org/doc/html/rfc7231#section-4.2.1). По сути, безопасными считаются методы, которые обычно используются для чтения, но не для записи данных. Они не должны выполнять никаких операций на изменение данных. Переход по ссылке является всегда GET-методом, то есть безопасным. 2. Операция осуществляет навигацию верхнего уровня (изменяет URL в адресной строке браузера).