Андрей
Аликберов, ЦИТ
..разумеется, с чаем :-))
Что такое cookie?
Что можно делать с
помощью cookie?
Какие броузеры
поддерживают механизм cookies?
Установка cookie
Установка cookie с помощью
HTML
Установка cookie с
использованием Perl/CGI
Установка нескольких
cookie одновременно
Что такое 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/htmln";
print "Set-Cookie: username=aaa13; expires=Friday,31-Dec-99 23:59:59 GMT; path=/win/internet/html/; domain=citforum.ru;nn";
Чтобы прочитать скриптом
значение 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/htmln";
print "Set-Cookie: NAME=value; EXPIRES=date; PATH=path; DOMAIN=domain_name; SECUREn";
print "Set-Cookie: NAME=value; EXPIRES=date; PATH=path; DOMAIN=domain_name; SECUREnn";
|