Cookie - разрешение одной из наследственных проблем HTTP спецификации. Данная проблема заключается в непостоянстве соединения между пользователем и веб-сервером, как при FTP или Telnet сессии, т.е. для каждого такого документа (или файла) при передаче по HTTP протоколу посылается отдельный запрос. Включение cookie в HTTP протокол дало частичное решение этой проблемы.
Cookie это небольшая доза информации, которую сервер передает пользователю. Клиент (броузер) будет хранить эту информацию и передавать ее серверу с каждым запросом как часть HTTP заголовка. Некоторые cookie хранятся в течение одной сессии, они удаляются после закрытия браузера. Другие, установленные на некоторый период, записываются в специальный файл. Обычно этот файл называют - 'cookie.txt'.
Сами по себе cookies не делают ничего, это только опредиленная информация. Однако, веб-сервер может на содержащуюся в cookies информацию. Например, в случае авторизованного доступа к чему то через WWW., в cookies сохраняется логин и пароль в течение этой сессии, что позволяет не вводить данные при запросе каждого паролированого документа. Другой пример: это когда cookies могут использоваться для построения персонализированных страниц. Такое встречается чаще всего - на какомто сервере Вас просят ввести имя, и каждый раз, когда пользователь посещает первую страницу сервера, Вас предупреждают что-то типа - Hello, your_name. На использование cookies чаще делают функцию оформления заказа в онлайн - магазинах, в частности, в Амазоне, такая виртуальная корзина, как в реальном супермаркете. Самые низкие цены на качественный и надежный хостинг сайтов в Украине!!!
Не все, но однако самые популярные поддерживают. Точно знаю, что Netscape (с самой первой версии), Microsoft IE (3 и 4 - точно, про предыдущие как то не знаю), Mosaic
Установка cookie.
Как выставить cookies клиенту зависит от того, как они будут использоваться дальше. Это можно делать при помощи скриптов и при помощи META - тегов HTML. Можно манипулировать временем существования настроенных cookies и устанавливать место, в котором настройки действительны. Обычно формат установки такой:
Set-Cookie: NAME=value; EXPIRES=date; DOMAIN=domain_name; PATH=path; SECURE
Этот способ самый простой для выставления cookie - использовать опредиленный META-тег в заголовке <HEAD> </HEAD> любого статического HTML файла. Это выглядит следующим образом:
<META HTTP-EQUIV="Set-Cookie" CONTENT="NAME=value; EXPIRES=date; DOMAIN=domain_name; PATH=path; SECURE"><hr width="1" style="width: 1px;" />
Другой способ настроить 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"--><hr width="1" style="width: 1px;" />
С помощью 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"> </pre> <p>Perl/CGI:</p> <pre> 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"; </pre>"</pre>"
