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

Установка срока действия

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

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

Wdy, DD- Mon- YYYY HH: MM: SS GMT
(День недели, ДД-Мес-ГГГГ ЧЧ:ММ:СС среднего времени по Гринвичу)

Ниже приведено одно из возможных значений срока действия cookie-набора.

Tue, 25-Dec-2007 12:34:56 GMT

Это несколько усложняет правильное определение даты (особенно дня недели), но здесь на помощь могут прийти внешние библиотеки.

Как только срок действия будет определен, его остается лишь ввести в качестве значения свойства document.cookie, как показано ниже:

document.cookie="myLanguage=JavaScript; expires=Tue, 22-Dec-2009 12:34:56 GMT";

Использование других свойств cookie

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

  • path. Задает путь для связывания с cookie-набором. По умолчанию используется текущий путь. Если же установлено значение / этого свойства, данный cookie-набор получает весь сайт.
  • domain. Определяет используемый домен или несколько доменов. По определению в имени домена должно быть по крайней мере две точки, хотя многие браузеры игнорируют этот факт.
  • Если же установлено значение .example.com данного свойства, то cookie получают домены по адресам www.example.com и subdomain.example.com.
  • secure. Если данное свойство установлено (для этого достаточно его ввести в строку cookie-набора), то cookie-набор передается только по защищенному соединению (т.е. по протоколу HTTPS).

В приведенном ниже примере кода устанавливается cookie-набор, связанный с доменом .example.com и передаваемый только по HTTPS-соединениям.

document.cookie="myLanguage=JavaScript; expires=Tue, 22-Dec-2009 12:34:56 GMT; path=/; domain=.example.com; secure";

Комментариев: 2

  1. Роман:

    Здравствуйте. У меня такой вопрос: Если у меня два сайта, например - site1. ru и site2. ru и мне надо чтобы поставленные cookie с site1. ru могли быть прочитаны сайтом - site2. ru Как это можно сделать? У меня связаны между собой два сайта (имеют единую регистрацию и базу пользователей) но при переходе с одного на другой сайт, пользователю постоянно приходится по новой авторизовываться из-за проблем с cookie, никак не могу сделать… Подскажите, пожалуйста.

  2. admin:

    надо чтобы поставленные cookie с site1. ru могли быть прочитаны сайтом - site2. ru
    Боюсь, что никак.

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