Работа с cookies и CGI::Application

Установка cookies

Получение информации из cookies

Обновление данных cookies

Чтобы обновить значение cookie, надо просто записать новые данные поверх существующих. Для этого указываем -name нужной cookie, и задаем новые параметры для нее.

Удаление cookies

Удалить cookie тоже просто - обновляем значение нужной сookie и -expires присваиваем отрицательное значение, например, -1d. Браузер примет обновление сookie и, увидев отрицательное время, посчитает, что он давным давно уже должен был удалить сookie (в данном случае, еще вчера). И удалит.

Памятка

Что такое cookies

Cookie является решением одной из наследственных проблем HTTP протокола (HyperText Transfer Protocol). Проблема заключается в непостоянстве соединения между клиентом и сервером.

Используя cookie, можно эмулировать сессию по HTTP протоколу. Коротко принцип эмуляции сессии таков: на первом запросе выдается соотвествующее значение cookie, а при каждом последующем запросе это значение читается из переменной окружения HTTP_COOKIE и соответствующим образом обрабатывается.

Cookie - это небольшая порция текстовой информации, которую сервер передает браузеру. Браузер будет хранить эту информацию и передавать ее серверу с каждым запросом как часть HTTP заголовка.

Некоторые cookie могут храниться только в течение одной сессии, они удаляются после закрытия браузера. Другие, установленные на определенный период времени, записываются в файл(ы).

Формат и синтаксис cookie

Сookie является частью HTTP заголовка. Полное описание поля Set-Cookie HTTP заголовка:

Минимальное описание поля Set-Cookie HTTP заголовка:

  • name=VALUE - строка символов, исключая перевод строки, запятые и пробелы. NAME-имя
    cookie, VALUE - значение. Не допускается использование двоеточия, запятой и пробела.
  • expires=DATE - время хранения cookie, т.е. вместо DATE должна стоять дата в формате
    "expires=Monday, DD-Mon-YYYY HH:MM:SS GMT", после которой истекает время хранения cookie. Если
    этот атрибут не указан, то cookie хранится в течение одного сеанса, до закрытия броузера.
  • domain=DOMAIN_NAME - домен, для которого значение cookie действительно. Например,
    "domain=cit-forum.com".
    Если этот атрибут опущен, то по умолчанию используется доменное имя сервера, на котором было
    задано значение cookie.
  • path=PATH - атрибут устанавливает подмножество документов, для которых действительно
    значение cookie. Для того, чтобы cookie отсылались
    при каждом запросе к серверу, необходимо указать корневой каталог сервера, например, "path=/".
    Если этот атрибут не указан, то значение cookie распространяется только на документы в той же
    директории, что и документ, в котором было установлено значение cookie.
  • secure - если стоит этот маркер, то информация cookie пересылается только через
    HTTPS (HTTP с использованием SSL - Secure Socket Level), в защищенном режиме. Если этот
    маркер не указан, то информация пересылается обычным способом.


Что такое cookies и как с ними работать. Андрей А.Аликберов

Полезные ссылки

http://www.redantigua.com/cookies.html Cookies with CGI::Application
http://search.cpan.org/~markstos/CGI-Application-4.31/lib/CGI/Application.pm
http://search.cpan.org/~lds/CGI.pm-3.49/lib/CGI.pm#HTTP_COOKIES