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