Воскресенье, 2024-05-19, 3:41 PM
Статьи - PHP
Приветствую Вас Гость | RSS
Главная страница Каталог статей Регистрация Вход
Меню сайта

Категории каталога
PHP [158]
Статьи по PHP

Наш опрос
Какую технологию вы предпочитаете?
Всего ответов: 250

Начало » Статьи » PHP » PHP

Формат и синтаксис Cookie
Спецификация

Полное описание поля set-cookie http заголовка:

set-cookie: name=value; expires=date; path=path; domain=domain_name; secure

Минимальное описание поля set-cookie http заголовка:

set-cookie: name=value;

name=value - строка символов, исключая перевод строки, запятые и пробелы. name-имя
cookie, value - значение. expires=date - время хранения cookie, т.е. вместо date
должна стоять дата в формате wdy, dd-mon-yyyy hh:mm:ss gmt, после которой истекает
время хранения cookie.

Если этот атрибут не указан, то cookie хранится в течение одного сеанса, до закрытия
броузера. domain=domain_name - домен, для которого значение cookie действительно.
Например, domain=cit-forum.com. В этом случае значение cookie будет действительно
и для сервера cit-forum.com, и для www.cit-forum.com. Но не радуйтесь, указания
двух последних периодов доменных имен хватает только для доменов иерархии "com",
"edu", "net", "org", "gov", "mil",
и "int".

Для доменов иерархии "ru" придется указывать три периода.

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

Например, указание path=/win приведет к тому, что значение cookie будет действительно
для множества документов в директории /win/, в директории /wings/ и файлов в текущей
директории с именами типа wind.html и windows.shtml

Если этот атрибут не указан, то значение cookie распространяется только на документы
в той же директории, что и документ, в котором было установлено cookie. secure
- если стоит такой маркер, то информация cookie пересылается только через https
(http с использованием ssl).

Если этот маркер не указан, то информация пересылается обычным способом.

Синтаксис http заголовка для поля cookie

Когда запрашивается документ с http сервера, броузер проверяет свои cookie на
предмет соответствия домену сервера и прочей информации. В случае, если найдены
удовлетворяющие всем условиям значения cookie броузер посылает их в серверу
в виде пары имя/значение:

cookie: name1=opaque_string1; name2=opaque_string2 ...

Дополнительные сведения

В случае, если cookie принимает новое значение при имеющемся уже в броузере
cookie с совпадающими name, domain и path, старое значение затирается новым.
В остальных случаях новые cookies добавляются.
Использование expires не гарантирует сохранность cookie в течение заданного
периода времени, поскольку клиент (броузер) может удалить запись вследствие
нехватки выделенного места или каких-либо других лимитов.
Клиент (броузер) имеет следующие ограничения:
всего может храниться до 300 значений cookies

каждый cookie не может превышать 4Кбайт

с одного сервера или домена может храниться до 20 значений cookie

Если ограничение 300 или 20 превышается, то удаляется первая по времени запись.
При превышении 4К - корректность такого cookie страдает - отрезается кусок записи
(с начала этой записи) равный превышению.
В случае кэширования документов, например, proxy-сервером, поле set-cookie
http заголовка никогда не кэшируется.
Если proxy-сервер принимает ответ, содержащий поле set-cookie в заголовке,
предполагается, что поле таки доходит до клиента вне зависимости от статуса
304 (not modified) или 200 (ok).
Соответственно, если клиентский запрос содержит в заголовке cookie, то он должен
дойти до сервера, даже если установлен if-modified-since.
Я полагаю, что все что сказано про proxy не относится к случаю, когда cookie
устанавливается жестко с помощью meta-тагов.

Примеры

Ниже приведено несколько примеров, иллюстрирующих использование cookies
Первый пример:
Клиент запрашивает документ и принимает ответ:

set-cookie: customer=wile_e_coyote; path=/; expires=wednesday, 09-nov-99 23:12:40
gmt

Когда клиент запрашивает url с путем "/" на этом сервере, он посылает:

cookie: customer=wile_e_coyote

Клиент запрашивает документ и принимает ответ:

set-cookie: part_number=rocket_launcher_0001; path=/

Когда клиент запрашивает url с путем "/" на этом сервере, он посылает:

cookie: customer=wile_e_coyote; part_number=rocket_launcher_0001

Клиент получает:

set-cookie: shipping=fedex; path=/foo

Когда клиент запрашивает url с путем "/" на этом сервере, он посылает:

cookie: customer=wile_e_coyote; part_number=rocket_launcher_0001

Когда клиент запрашивает url с путем "/foo" на этом сервере, он посылает:

cookie: customer=wile_e_coyote; part_number=rocket_launcher_0001; shipping=fedex

Второй пример:
Клиент принимает:

set-cookie: part_number=rocket_launcher_0001; path=/

Когда клиент запрашивает url с путем "/" на этом сервере, он посылает:

cookie: part_number=rocket_launcher_0001

Клиент принимает:

set-cookie: part_number=riding_rocket_0023; path=/ammo

Когда клиент запрашивает url с путем "/ammo" на этом сервере, он посылает:

cookie: part_number=riding_rocket_0023; part_number=rocket_launcher_0001

Комментарий: здесь мы имеем две пары имя/значение с именем "part_number".

Это наследие из предыдущего примера, где значение для пути "/" прибавилось
к значению для "/ammo".

Категория: PHP | Добавил: webmaster (2006-12-06)
Просмотров: 405 | Рейтинг: 0.0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа

Сервисы

Поиск по каталогу

Друзья сайта

| Ссылки 1 | Ссылки 2 | Ссылки 3 |
www.webmaster.clan.su Каталог+поисковая система be number one Bakililar.az Top Sites Сервис авто регистрации в
каталогах, статьи про раскрутку сайтов, web дизайн, flash, 
photoshop, хостинг, рассылки; форум, баннерная сеть, каталог 
сайтов, услуги продвижения и рекламы сайтов Скрипт для определения тиц (Яндекс CY: индекс цитирования). Определение pr (Google Pagerank). Проверить тиц pr сайта.
Copyright WebMaster.Clan © 2006 Бесплатный хостинг uCoz