[Image] Четверг, 13.06.2024, 09:33 [Image]
SEO, технологии, игры, IT новости
[Image] Главная Регистрация Вход [Image]
[Image] Приветствую Вас, Гость · RSS [Image]
Меню сайта

Форма входа
 Блог
Главная » 2011 » Январь » 24 » Реализация cookie-наборов
20:41
Реализация cookie-наборов
Как уже говорилось, существует несколько методов использования cookie-наборов в PHP-сценариях. В этом разделе рассматриваются два метода (использование HTML и HTTP). Установка cookie-наборов на клиентской стороне с помощью, например JavaScript, рассматриваться не будет, cookie-наборы посылаются клиенту путем спецификации одного или нескольких заголовков Set-Cookie, когда браузер запрашивает файл у Web-сервера во время выполнения запроса GET или POST. Синтаксис HTTP-заголовка Set-Cookie имеет следующий вид:
Set-Cookie: NAME=VALUE; expires=DATE; path=PATH; domain=DOMAIN NAME; secure
НА ЗАМЕТКУ
Несмотря на то что можно указывать все параметры, для нормальной работы HTTP- заголовок Set-Cookie не требует всех параметров. Например, параметр PATH может быть опущен.
Параметр NAME представляет собой имя cookie-набора, a VALUE — URL-кодированное значение. Параметр DATE задает точную дату и время, когда cookie-набор потеряет актуальность (если он указан). Параметры PATH и DOMAINJSIAME представляют путь и домен, для которых предназначен этот cookie-набор. Последний параметр, secure, нужно указывать, если cookie-набор посылается через защищенное (SSL) HTTP-соединение. Как уже упоминалось, параметр DATE задает граничное время актуальности cookie-набора. Ниже представлен формат параметра DATE:
<Day>, DD-MMM-YYYY HH:MM:SS GMT
где <Day> — это полное название дня (Monday, Tuesday и так далее), DD-MMM-YYYY —дата в формате трехсимвольной аббревиатуры месяца и HH:MM:SS — время. Важно помнить, что время должно задаваться по Гринвичу (GMT).
Ранее говорилось, что cookie-наборы посылаются только тем доменам, которые соответствуют домену cookie-набора (указанному в параметре DOMAINNAME). Следуетпомнить, что для корректной установки cookie-набора указывать полное доменное имя не обязательно.
Например, если нужно установить cookie-набор, который будет работать с mysubdoain.coggeshall.org, www.coggeshall.org и просто coggeshall.org, будет достаточно задать значение DOMAIN_NAME равным .coggeshall.org. Это работает потому, что браузер сравнивает текущее доменное имя с соответствующим значением cookie-набора справа налево (в обратном порядке) и посылает cookie-набор, если обнаружено совпадение. Таким образом, поскольку mysubdomain.coggeshall.org соответствует . coggeshall .org (справа налево), то cookie-набор будет послан.
НА ЗАМЕТКУ
Если не указывать для cookie-набора параметр DOMAIN_NAME, то в качестве значения по умолчанию будет использовано полное имя домена, с которого был отправлен cookie-набор.
Обратите внимание, что в качестве значения параметра DOMAIN_NAME используется не просто coggeshall.org, а .coggeshall.org (с ведущей точкой). Это еще одна гарантия от злоупотребления cookie-наборами. Параметр DOMAIN_NAME должен иметь как минимум две точки в имени домена, а в некоторых случаях — и три. Это позволяет предотвратить передачу cookie-наборов с именем домена, такого как . com (который совпадает со всеми доменами, оканчивающимися на .com). Для того чтобы определить, сколько точек нужно указывать в параметре DOMAIN_NAME, необходимо посмотреть на домен верхнего уровня (.com, .edu и так далее), из которого был прислан cookie-набор. Существует несколько доменов верхнего уровня, для которых в имени домена достаточно двух уровней: .COM, .EDU, .NET, .ORG, .GOV, .MIL, .BIZ, .SHOP, .INFO и . INT. Кроме того, если будут созданы новые домены верхнего уровня, они также будут соответствовать этому стандарту. Все другие домены (такие как .mi.us или . со. uk) требуют минимум трех точек в параметре DOMAIN_NAME.
НА ЗАМЕТКУ
Ранее в этой главе говорилось, что нельзя сохранить более 20 cookie-наборов на домен. Это касается cookie-наборов, использующих одно и то же значение параметра DOMAIN_NAME.
Например, можно установить 20 cookie-наборов для c o g g e s h a l l . org, а затем — 20 cookie- наборов для c o o l . c o g g e s h a l l . o r g .
При работе с cookie-наборами значение cookie-набора можно изменить, послав дополнительный заголовок Set-Cookie с новым значением. Для того чтобы это корректно работало, нужно устанавливать cookie-набор, используя тот же домен, путь и имя, которые указывались для исходного cookie-набора. Для удаления cookie-набора достаточно изменить текущее значение cookie-набора так, чтобы он потерял актуальность в прошлом.
В качестве завершения обсуждения рассмотрим пример допустимого заголовка
Set-Cookie, который показан в листинге 6.1.
Листинг 6.1. Допустимый заголовок Set-Cookie
Set-Cookie: mycookie=myvalue; expires=Tuesday, 03-Dec-2005 13:01:59 GMT;
path=/; domain=.coggeshall.org;
НА ЗАМЕТКУ
В листинге 6.1 заголовок Set_Cookie разбит на две строки из-за ограниченной ширины страницы. На практике заголовок посылается как одна строка текста.
Как видите, был установлен cookie-набор mycookie со значением myvalue для всех файлов в домене coggeshall.org. Этот cookie-набор установлен с граничной датой актуальности декабря 2005 года (03-Dec-2005) и временем 13:01:59 GMT.

Категория: Все о PHP | Просмотров: 1454 | Добавил: witkom8382 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Copyright MyCorp © 2024
Категории
Оптимизация сайта [589]
Создание сайтов [355]
Заработать в интернете [505]
Технологии [44]
Полезное [369]
Услуги и сервисы [309]
Автоблог [101]
Скрипты для Ucoz [39]
Движок на сайт [10]
Все о Joomla и Drupal [20]
Все о PHP [91]
Поиск
Пользовательский поиск
Статистика


Онлайн всего: 2
Гостей: 2
Пользователей: 0
Seo сайт, технологии продвижения, мета теги, оптимизация сайтов, новости сео, Скрипты, Ucoz

Рейтинг@Mail.ru