HTTP cookie
HTTP cookie: ключики, куки, печенюшки
Идея ключиков в HTTP протоколе
Назначение и особенности
Схема работы ключиков
Заголовок ответа Set-Cookie
Заголовок запроса Cookie
Установка ключиков через HTML
53.27K
Category: programmingprogramming

HTTP cookie. Краткий обзор

1. HTTP cookie

Краткий обзор

2. HTTP cookie: ключики, куки, печенюшки

Задача: необходимость различения веб-серверами пользователей и
хранение данных о них. Например, в Интернет магазине необходимо
сопоставлять пользователя с его корзиной заказов.
Проблема: отсутствие в HTTP сессий
Идея: номерки в гардеробе (magic cookie)
Автор: Лу Монтулли из Netscape Communications, 1994 год.
© НГУЭУ 2013
Основы Web: HTTP cookie
2

3. Идея ключиков в HTTP протоколе

Идея ключиков – отправлять Web сервером небольшой фрагмент
данных для сохранения на компьютере пользователя, который
автоматически возвращается браузером при повторном обращении
клиента к данному серверу получен и прочитан
Некоторые из типичных применений ключиков:
аутентификация пользователей
хранение персональных предпочтений и настроек
отслеживание состояния сеанса доступа пользователя
ведение статистики о пользователе
© НГУЭУ 2013
Основы Web: HTTP cookie
3

4. Назначение и особенности

Спецификации: RFC2109 И RFC 2965 (IETF)
Минимальные объемы: 300 порций по 4096 байт
20 ключиков для одного сервера или домена
Есть ограничения по браузерам !
Сроки устаревания ключиков: ключики сеанса и постоянные
ключики (с определенной датой)
Кто добавляет ключики?
© НГУЭУ 2013
Основы Web: HTTP cookie
4

5. Схема работы ключиков

Запрос браузера веб-серверу:
GET /index.html HTTP/1.1
Host: www.web-server.ru
Ответ веб-сервера с установкой ключика
HTTP/1.1 200 OK
Content-type: text/html
Set-Cookie: name=value

Запрос с возвратом ключика при повторном обращении к серверу
GET /spec.html HTTP/1.1
Host: www.web-server.ru
Cookie: name=value

© НГУЭУ 2013
Основы Web: HTTP cookie
5

6. Заголовок ответа Set-Cookie

Установка сервером ключиков через заголовок Set-Cookie:
Set-Cookie: <имя>=<значение>; expires=<дата>; path=<путь>;
domain=<домен>; secure
имя: строка без использования пробела, точки с запятой, …
значение: строка без использования пробела, точки с запятой, …
expires=<дата> - дата истечения срока действия
например, Wednesday, 01-Dec-2013 00:00:00 GMT
domain=<домен> - диапазон доменов
path=<путь> - устанавливает подмножество документов, на которые
распространяется действие ключика
secure: флаг, требующий возвращения ключика только при условии
защищенного соединения
© НГУЭУ 2013
Основы Web: HTTP cookie
6

7. Заголовок запроса Cookie

Сообщение о наличии на клиенте ключиков, определенных для
данной страницы осуществляется через заголовок запроса Cookie:
Cookie: <имя>=<значение>[; <имя>=<значение>]
имена в парах могут повторяться
в начале размещаются наиболее точно специфицированные
ключики
значение: строка без использования пробела, точки с запятой, …
expires=<дата> - дата истечения срока действия
например, Wednesday, 01-Dec-2013 00:00:00 GMT
domain=<домен> - диапазон доменов
secure: флаг, требующий возвращения ключика только при условии
защищенного соединения
© НГУЭУ 2013
Основы Web: HTTP cookie
7

8. Установка ключиков через HTML

Вспомним мета-тег заголовка. Он пригоден и для установки
ключиков:
<META http-equiv="Set-Cookie" content="NAME=value; EXPIRES=date;
DOMAIN=domain_name; PATH=path; SECURE" />
© НГУЭУ 2013
Основы Web: HTTP cookie
8
English     Русский Rules