JavaScript свойство Document.cookie

JavaScript Document

Определение и применение

JavaScript свойство cookie объекта Document получает или задает cookie (небольшой фрагмент данных, отправленный веб-сервером и хранимый на компьютере пользователя), связанных с текущим документом.


Обращаю Ваше внимание на то, что по умолчанию cookies являются временными – их значения сохраняются на период сеанса браузера и удаляются при его закрытии. Срок хранения cookies не совпадает со сроком хранения данных в sessionStorage объекта Window, так как доступность cookies не ограничивается единственным окном, а по умолчанию хранятся на протяжении работы процесса браузера, а не конкретного окна браузера.


Для возможности сохранения cookies после окончания сеанса браузера необходимо дополнительно передать специальный атрибут ;max-age=max-age-in-seconds, значение которого в секундах определяет как долго он должен хранится. Если этот атрибут указан, то браузер сохранит cookie в локальном файле и удалит его только по истечении указанного срока хранения.

Видимость cookie ограничивается происхождением документа, как и при использовании хранилищ localStorage и sessionStorage объекта Window, а также строкой пути к документу. Область видимости cookies может управляться с использованием атрибутов path и domain, при этом по умолчанию cookies связывается с создавшей его страницей и доступен этой странице, а также другим страницам из того же каталога или любых его подкаталогов. Например, если, страница https://basicweb.ru/content/index.php создаст cookie, то этот cookie будет также видим страницам https://basicweb.ru/content/somepage.php и https://basicweb.ru/content/catalog/otherpage.php, но невидим странице https://basicweb.ru/index.php.

Этого правила видимости, принятого по умолчанию, обычно вполне достаточно, но иногда значения cookie требуется использовать на всем сайте независимо от того, какая страница создала cookie. Для этого в cookie необходимо определить атрибут path и тогда любая страница того же веб-сервера с URL-адресом, начинающимся с указанного значения, сможет использовать этот cookie. Например, если для cookie, установленного страницей https://basicweb.ru/css/data/index.html, в атрибуте path установлено значение "/css", то этот cookie также будет виден для страницы https://basicweb.ru/css/somepage.html. А если атрибут path установлен в значение "/", то cookie будет видим для любой страницы на веб-сервере https://basicweb.ru. Установка атрибута path в значение "/" определяет такую же область видимости cookie, как для хранилища localStorage, а также говорит о том, что браузер должен передавать имя и значение cookie на сервер при запросе любой веб-страницы с этого сайта.

По умолчанию cookies доступны только страницам с общим происхождением, но может потребоваться возможность совместного использования cookies несколькими поддоменами. Например, серверу domain1.example.com может потребоваться прочитать значения cookie, установленного сервером domain2.example.com. В этой ситуации необходимо использовать атрибут domain. Если cookie, созданный страницей с сервера catalog.example.com, имеет в атрибуте path значение /, а в атрибуте domain – значение ".example.com", то этот cookie будет доступен всем страницам в поддоменах в домене example.com. Если атрибут domain не установлен, то его значением по умолчанию будет имя сервера на котором находится страница. Обратите внимание, что в атрибут domain нельзя записать значение, отличающееся от домена вашего сервера.

Заключительный атрибут secure – является логическим атрибутом, который определяеи как значения cookie передаются по сети. По умолчанию cookie не защищен, т. е. передается по обычному незащищенному HTTP соединению. Если cookie помечен как защищенный, то он будет передаваться, только когда обмен между браузером и сервером организован по протоколу HTTPS или другому защищенному протоколу.

Поддержка браузерами

СвойствоChrome
Chrome
Firefox
Firefox
Opera
Opera
Safari
Safari
Internet Explorer
IExplorer
Microsoft Edge
Edge
bodyДаДаДаДаДаДа

JavaScript синтаксис:

Получение всех cookies

const allCookies = document.cookie;

В коде выше allCookies представляет собой строку, содержащую разделенный точкой с запятой список всех файлов cookie (т. е. пары ключ=значение). Обратите внимание, что каждый ключ и значение могут быть окружены пробелами (пробелами и символами табуляции), на самом деле стандарт RFC 6265 требует одного пробела после каждой точки с запятой, но некоторые браузеры могут не соблюдать этого.

Установка нового cookie

document.cookie = newCookie;

В приведенном выше коде, newCookie представляет собой строку вида ключ=значение. Обратите внимание, что вы можете установить, или обновить только один файл cookie за раз с помощью этого метода. Учтите также, что:

Спецификация

Document Object Model (DOM) Level 2 HTML Specification

Пример использования

// устанавливаем значение cookie
document.cookie = "name=basicweb";
document.cookie = "uid=5454545454";

// выводим в консоль текущее значение cookie
console.log(document.cookie); // "name=basicweb; uid=5454545454"
JavaScript Document
×

Кажется, вы используете блокировщик рекламы :(

Этот ресурс не является коммерческим проектом и развивается на энтузиазме автора сайта, который посвящает все свое свободное время этому проекту.

Добавьте, пожалуйста, basicweb.ru в исключения блокировщика рекламы, этим вы поможете развитию проекта.