Что такое 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 также часто строят функцию оформления
заказа в онлайновых магазинах, в частности, в Амазоне, такая своеобразная
виртуальная корзина покупателя, как в обычном реальном супермаркете.
Какие броузер Веб-обозреватель, браузер (от англ.Web browser; вариант броузер— устаревшая форма)— программное обеспечение для просмотра веб-сайтов, то есть для запроса веб-страниц (преимущественно из Сети), их обработки, вывода и перехода от одной страницы к другой.ы поддерживают механизм cookies?
Не все, конечно, однако самые популярные поддерживают. Я точно
знаю, что Netscape (начиная с самой первой версии), Microsoft
IE (трешка и четверка - точно, про предыдущие не знаю), Mosaic NCSA Mosaic (по-русски произносят [мазаик])— это первый веб-браузер под операционную систему Microsoft Windows с графическим интерфейсом пользователя и развитыми возможностями, на котором основаны и Netscape Navigator, и Microsoft Internet Explorer. Однако, несмотря на то, что NCSA (National Center for Supercomputing Applications) является пионером в области Web-браузеров, работа по развитию программы Mosaic прекращена в 1997году. Последняя версия Mosaic3.0, хотя и обладает приятным интерфейсом, не поддерживает такие современные технологии, как JavaScript, модули расширения и даже анимированные GIF-файлы. Однако этот браузер всё-таки имеет встроенные e-mail и ftp-клиенты. Впервые вышел 22 апреля 1993 года и стал первым в мире интернет-браузером. В 2010 году код NCSA Mosaic 2.7 был адаптирован для работы в современных Linux дистрибутивах.
Установка 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/html\n";
print "Set-Cookie: username=aaa13; expires=Friday,31-Dec-99 23:59:59 GMT; path=/win/internet/html/; domain=S-Networks.ru;\n\n";
Чтобы прочитать скриптом значение Значение— ассоциативная связь между знаком и предметом обозначения. cookie, которое было установлено
ранее, и соответствующим образом выполнить скрипт Скриптовый язык (англ.scripting language, в русской литературе принято название язык сценариев)— язык программирования, разработанный для записи «сценариев», последовательностей операций, которые пользователь может выполнять на компьютере. Простые скриптовые языки раньше часто называли языками пакетной обработки (англ.batch languages или job control languages). Сценарии обычно интерпретируются, а не компилируются (хотя всё чаще применяют компиляцию каждый раз перед запуском)., используется
переменная окружения 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";
|