Клиентский JavaScript. Справочник



              

Описание


Сервер высылает куки-информацию клиенту в шапке/header HTTP, когда сервер отвечает на запрос. В эту информацию включается описание диапазона URL, для которых она действует. Любые последующие HTTP-запросы, сделанные клиентом, которые попадают в этот диапазон, будут включать передачу текущего значения объекта статуса с клиента обратно на сервер.

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

Определение Действующей Куки.

При поиске в списке кук действующих кук, сравнение атрибутов домена в куке выполняется с именем хоста, с которого URL запрашивается.

Если атрибут домена совпадает с концом полного квалифицированного доменного имени хоста, совпавший путь проверяется на предмет необходимости отправки куки. Например, атрибут домена royalairways.com совпадает с именами хоста anvil.royalairways.com и ship.crate.royalairways.com.

Только хосты в специфицированном домене могут отправлять куки для домена. Кроме этого, доменные имена обязаны использовать как минимум две или три точки. Любой домен категорий COM, EDU, NET, ORG, GOV, MIL и INT требует только двух точек; все остальные домены требуют как минимум трёх точек.

PATH=pathName специфицирует URL'ы домена, для которых кука действует. Если кука уже прошла совпадение с доменом, то компонент pathname из URL сравнивается атрибутом path и, если совпадение есть, кука считается действующей и высылается вместе с URL запроса. Например, PATH=/foo совпадает с /foobar и с /foo/bar.html. Путь "/" это самый распространённый путь.

Синтаксис Шапки HTTP-Запроса Куки.

При запросе URL с HTTP-сервера браузер сопоставляет этот URL со всеми существующими куками. Если кука совпадает с URL запроса, строка, содержащая пары имя/значение всех совпадающих кук, включается в HTTP-запрос в следующем формате:

Cookie: NAME1=OPAQUE_STRING1; NAME2=OPAQUE_STRING2 ...
Сохранение Кук.

Один серверный ответ может давать несколько шапок Set-Cookie. Сохранение куки с теми же значениями PATH и NAME, что и у существующей куки, перезаписывает существующую куку. Сохранение куки с тем же значением PATH, но с другим значением NAME, добавляет новую куку.

Значение EXPIRES указывает, когда зачистить отображение. Navigator также удалит куку перед истечением срока её действия, если количество кук превысит внутренний лимит.

Кука с более высоким уровнем значения PATH не переопределяет более специфическое значение PATH. Если имеются несколько совпадений с различными путями, высылаются все совпавшие куки, как показано далее в примерах.

Скрипт CGI может удалить куку, возвращая куку с теми же значениями PATH и NAME и значением EXPIRES, которое было ранее. Поскольку PATH и NAME обязаны совпадать точно, для скрипта, отличного от создателя куки, будет затруднительно удалить её.

Специфицирование для Клиента.

При отправке куки на сервер, все куки с более специфицированным отображением пути высылаются до кук с менее специфицированным отображением пути. Например, кука "name1=foo" с отображением пути "/" должна быть выслана после куки "name1=foo2" с отображением пути "/bar", если они обе высылаются.

Navigator может получать и сохранять следующее:

  • общее количество кук: 300.
  • 4 килобайта на куку, где имя и OPAQUE_STRING комбинируются для образования лимита в 4 килобайта.
  • 20 кук на сервер или домен. Полностью специфицированные хосты и домены считаются отдельными экземплярами, и каждый имеет ограничение в 20 кук.

Когда лимит в 300 кук или 20 на сервер превзойдён, Navigator удаляет самые старые куки. Когда обнаруживается кука размером более 4 КВ, она должна быть усечена, но имя должно остаться без изменения, если оно менее 4 КВ.









Содержание    Назад    Вперед