Что такое cookie? Cookie является решением одной из наследственных проблем HTTP
спецификации. Эта проблема заключается в непостоянстве соединения между клиентом
и сервером, как при FTP или Telnet сессии, т.е. для каждого документа (или
файла) при передаче по HTTP протоколу посылается отдельный запрос. Включение
cookie в HTTP протокол дало частичное решение этой проблемы. Cookie это
небольшая порция информации, которую сервер передает клиенту. Клиент (броузер)
будет хранить эту информацию и передавать ее серверу с каждым запросом как часть
HTTP заголовка. Некоторые cookie хранятся только в течение одной сессии, они
удаляются после закрытия броузера. Другие, установленные на некоторый период
времени, записываются в файл. Обычно этот файл называется
'cookie.txt'.
Что можно делать с помощью cookie? Сами по себе
cookies не могут делать ничего, это только лишь некоторая информация. Однако,
сервер может на содержащуюся в cookies информацию. Например, в случае
авторизованного доступа к чему либо через WWW, в cookies сохраняется login и
password в течение сессии, что позволяет не вводить их при запросе каждого
запаролированного документа. Другой пример: cookies могут использоваться для
построения персонализированных страниц. Чаще всего встречается такое - на
некотором сервере Вас просят ввести свое имя, и каждый раз, когда Вы заходите на
первую страницу этого сервера, Вам пишут что-то типа "Hello, your_name!".
На использовании cookies также часто строят функцию оформления заказа в
онлайновых магазинах, в частности, в Амазоне, такая своеобразная виртуальная
корзина покупателя, как в обычном реальном супермаркете.
Какие
броузеры поддерживают механизм cookies? Не все, конечно, однако самые
популярные поддерживают. Я точно знаю, что Netscape (начиная с самой первой
версии), Microsoft IE (трешка и четверка - точно, про предыдущие не знаю),
Mosaic
Установка cookie. Как выставлять cookies клиенту зависит
от того, как они будут использоваться в дальнейшем. Это можно делать как с
помощью скриптов, так и с помощью META-тагов HTML. Можно манипулировать временем
жизни выставленных cookies и устанавливать место, в котором установки
действительны. Общий формат установки таков: Set-Cookie: NAME=value;
EXPIRES=date; DOMAIN=domain_name; PATH=path; SECURE
Установка cookie с помощью HTML. Простейший способ выставить cookie -
использовать соответствующий META-таг в заголовке <HEAD> </HEAD>
любого статического HTML документа. Это выглядит следующим образом: <META
HTTP-EQUIV="Set-Cookie" CONTENT="NAME=value; EXPIRES=date; DOMAIN=domain_name;
PATH=path; SECURE">
Установка cookie с использованием
Perl/CGI. Другой способ выставить cookie - с помощью серверного скрипта.
На Perl это будет выглядеть примерно следующим образом: перед тем как выдавать
серверный ответ генерируется HTTP заголовок print "Content-type: text/html\n";
print "Set-Cookie: username=aaa13; expires=Friday,31-Dec-99 23:59:59 GMT;
path=/win/internet/html/; domain=citforum.ru;\n\n"; Чтобы прочитать скриптом
значение cookie, которое было установлено ранее, и соответствующим образом
выполнить скрипт, используется переменная окружения HTTP_COOKIE. На Perl это
будет выглядеть так: $cookie = $ENV{'HTTP_COOKIE'};
При использовании SSI
для просмотра значения cookie можно применить директиву: <!--#echo
var="HTTP_COOKIE"-->
Установка нескольких cookie
одновременно. Как с помощью HTML, так и с помощью скриптов можно
устанавливать несколько cookie разом:
HTML: <META HTTP-EQUIV="Set-Cookie" CONTENT="NAME=value; EXPIRES=date;
DOMAIN=domain_name; PATH=path; SECURE"> <META HTTP-EQUIV="Set-Cookie"
CONTENT="NAME=value; EXPIRES=date; DOMAIN=domain_name; PATH=path; SECURE">
Perl/CGI: print "Content-type: text/html\n"; print "Set-Cookie: NAME=value;
EXPIRES=date; PATH=path; DOMAIN=domain_name; SECURE\n"; print "Set-Cookie:
NAME=value; EXPIRES=date; PATH=path; DOMAIN=domain_name; SECURE\n\n";
|