Что такое 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";
Автор: Андрей Аликберов