Введение в javascript для мага



страница1/15
Дата30.11.2019
Размер0.91 Mb.
Название файлаJS9. Cookies, JSON, AJAX и локальные хранилища.docx
ТипЛабораторная работа
  1   2   3   4   5   6   7   8   9   ...   15

3 курс Лабораторная работа № 9 «Способы хранения данных в браузере. Асинхронная работа с данными»

Cookie


Куки – это небольшие строки данных, которые хранятся непосредственно в браузере. Они являются частью HTTP-протокола, определённого в спецификации RFC 6265. Куки обычно устанавливаются веб-сервером при помощи заголовка Set-Cookie. Затем браузер будет автоматически добавлять их в (почти) каждый запрос на тот же домен при помощи заголовка Cookie.

Один из наиболее частых случаев использования куки – это аутентификация:



  1. При входе на сайт сервер отсылает в ответ HTTP-заголовок Set-Cookie для того, чтобы установить куки со специальным уникальным идентификатором сессии («session identifier»).

  2. Во время следующего запроса к этому же домену браузер посылает на сервер HTTP-заголовок Cookie. Таким образом, сервер понимает, кто сделал запрос.

Мы также можем получить доступ к куки непосредственно из браузера, используя свойство document.cookie.

Чтение из document.cookie

Проверить, хранит ли браузер какие-то куки можно, например, так:

alert( document.cookie ); // cookie1=value1; cookie2=value2;...

Значение document.cookie состоит из пар ключ=значение, разделённых ;. Каждая пара представляет собой отдельное куки.

Чтобы найти определённое куки, достаточно разбить строку из document.cookie по ;, и затем найти нужный ключ. Для этого мы можем использовать как регулярные выражения, так и функции для обработки массивов.

Запись в document.cookie

Запись в document.cookie обновит только упомянутые в ней куки, но при этом не затронет все остальные.

Например, этот вызов установит куки с именем user и значением John:

document.cookie = "user=John"; // обновляем только куки с именем 'user'

alert(document.cookie); // показываем все куки

Если вы запустите этот код, то, скорее всего, увидите множество куки. Это происходит, потому что операция document.cookie= перезапишет не все куки, а лишь куки с вышеупомянутым именем user.

Технически, и имя и значение куки могут состоять из любых символов, для правильного форматирования следует использовать встроенную функцию encodeURIComponent:

// специальные символы (пробелы), требуется кодирование

let name = "my name";

let value = "John Smith"
// кодирует в my%20name=John%20Smith

document.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value);


alert(document.cookie); // ...; my%20name=John%20Smith
Ограничения

Существует несколько ограничений:



  • После encodeURIComponent пара name=value не должна занимать более 4Кб. Таким образом, мы не можем хранить в куки большие данные.

  • Общее количество куки на один домен ограничивается примерно 20+. Точное ограничение зависит от конкретного браузера.

У куки есть ряд настроек, многие из которых важны и должны быть установлены.

Эти настройки указываются после пары ключ=значение и отделены друг от друга разделителем ;, вот так:

document.cookie = "user=John; path=/; expires=Tue, 19 Jan 2038 03:14:07 GMT"



Поделитесь с Вашими друзьями:
  1   2   3   4   5   6   7   8   9   ...   15


База данных защищена авторским правом ©danovie.ru 2019
обратиться к администрации

    Главная страница