Cookies

Cookie является решением одной из наследственных проблем HTTP спецификации. Эта проблема заключается в непостоянстве соединения между клиентом и сервером, как при FTP или Telnet сессии, т.е. для каждого документа (или файла) при передаче по HTTP протоколу посылается отдельный запрос. Включение cookie в HTTP протокол дало частичное решение этой проблемы и не только этой.

Передача cookie сервером клиенту

Передача cookie клиентом серверу

Cookie это небольшая порция информации, которую сервер передает клиенту. Клиент (браузер) будет хранить эту информацию, и передавать ее серверу с каждым запросом как часть HTTP заголовка. Некоторые cookie хранятся только в течение одной сессии, они удаляются после закрытия браузера. Другие, установленные на некоторый период времени, записываются в файл. Эти файлы вы можете видеть у себя на компьютере в каталоге \Documents and Settings\Имя_пользователя\Cookies\.

Сами по себе cookies не могут делать ничего, это только лишь некоторая информация. Однако, сервер может реагировать на содержащуюся в cookies информацию. Например, в случае авторизованного доступа к чему-либо через WWW, в cookies можно сохраняется login и password в течение сессии, что позволяет не вводить их при запросе каждого запрошенного документа. Другой пример: cookies могут использоваться для построения персонализированных страниц. Чаще всего встречается такое - на некотором сервере вас просят ввести свое имя, и каждый раз, когда вы заходите на первую страницу этого сервера, вам пишут что-то типа "Здравствуй, Вася Пупкин!". На использовании cookies также часто строят функцию оформления заказа в онлайновых магазинах.

Cookie является частью HTTP заголовка. Полное описание поля Set-Cookie HTTP заголовка:

Set-Cookie: NAME=value; EXPIRES=date; DOMAIN=domain_name; PATH=path; SECURE

Минимальное описание поля Set-Cookie HTTP заголовка:

Set-Cookie: NAME=VALUE;

NAME=VALUE - NAME - переменная (имя cookie), VALUE - значение.

expires=DATE - время хранения cookie (формат записи "expires=Monday, DD-Mon-YYYY HH:MM:SS GMT").
Пример:
expires=Friday,31-Dec-99 23:59:59 GMT;
Если этот атрибут не указан, то cookie хранится в течение одного сеанса, до закрытия броузера.

domain=DOMAIN_NAME - домен, для которого значение cookie действительно. Например, "domain=ipm.kstu.ru".
Если этот атрибут опущен, то по умолчанию используется доменное имя сервера, на котором было задано значение cookie.

path=PATH - этот атрибут устанавливает корневой путь к документам, для которых действительно значение cookie. Например, указание "path=/students/pupkin/" приведет к тому, что значение cookie будет действительно для всех документов Васи Пупкина в директории /students/pupkin/. Для того, чтобы cookie отсылались при запросе любого документа сервера, необходимо указать корневой каталог сервера ("path=/").

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

secure - если стоит этот маркер, то информация cookie пересылается только через HTTPS (HTTP с использованием SSL - Secure Socket Level), в шифрованном виде. Если этот маркер не указан, то информация пересылается обычным способом.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: