Что такое
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
Более подробно об этом можно прочитать в статье
"Формат и синтаксис Cookies"
Установка 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";
|