Введение в Cookies
Что такое 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";
Источник: http://www.codenet.ru/
|