Работа с cookies. Часть 1

Cookie представляют собой механизм, применяемой в модели “клиент-сервер” для преодоления одного из ограничений протокола HTTP. Этот протокол не сохраняет свое состояние, т.е. у него нет памяти. Клиент устанавливает соединение, получает документ (текст, изображение или любые другие данные), затем разрывает соединение. Если затем сервер отправляет данные этому клиенту, он не распознает его.

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

В JavaScript имеются средства для получения (т.е. чтения) и установки (т.е. записи) cookie, не прибегая к протоколу HTTP. Это позволяет добиться результатов, которые трудно достижимы только средствами HTTP серверной технологии.

Общее представление о cookie

Когда Web-сервер посылает cookie-набор клиенту, используется HTTP-заголовок следующего вида:

Set-Cookie: session=absd1234; expires=Tue, 20-Feb-2008 12:10:52 GMT; path=/; domain=.example.com

Затем клиент получает данный cookie-набор и в соответствии со своей конфигурацией и/или возможностями предпринимает одно из следующих действий:

  • игнорирует cookie-набор;
  • принимает cookie-набор;
  • запрашивает пользователя, следует ли принять cookie-набор;
  • отклоняет сookie-набор.

Первое и последнее действия, по существу, означают одно и то же. Web-сервер не в состоянии определить, был ли cookie-набор отвергнут пользователем, отклонен конфигурацией клиента или же проигнорирован клиентом из-за отсутствия поддержки cookie.

Если cookie-наборы принимаются, они затем отправляются обратно серверу, при условии, что выполняется определенный ряд требований. А соответствующий HTTP-заголовок принимает следующий вид:

Cookie: session=abcd1234

Cookie-набор может быть связан с определенным доменом или путем. Поэтому cookie-набор обычно посылается обратно только тому серверу, от которого он был первоночально получен. В cookie-наборе можно перезаписать значение домена, но после этого некоторые браузеры автоматически отклоняют такой cookie-набор.

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

  • объем памяти на каждый cookie-набор — 4 Кбайт (4096 байт);
  • число cookie-наборов на каждый домен — 20;
  • общее число cookie-наборов — 300;

Оставьте свой отзыв