Добавляем...


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

Главная ценность файлов cookie вытекает из того, что HTTP является протоколом, не фиксирующим состояние (stateless protocol). Нет возможности контролировать информацию о соединении или о пользователе при повторных обращениях одного и того же клиента к одному и тому же серверу (конечно, если только информация о соответствующем состоянии не сохраняется на сервере, например в базе данных). Netscape еще на заре использования Web предложила решить эту проблему путем использования файлов cookie.

Файл cookie — это небольшой фрагмент текстовых данных, который устанавливается Web-сервером на машине клиента и который автоматически возвращается клиентом серверу при каждом запросе последнего. Это позволяет серверу разместить в файле cookie те значения, которые сервер "желает помнить", чтобы иметь к ним доступ при компоновке ответа.

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

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

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


имя=значение [; expires=dama] [; domain=домен] [; path=nymb] [; secure]


Лексемы, заключенные в квадратные скобки, являются необязательными и могут размещаться в любом порядке. Семантика лексем описана в табл.
Лексема Описание Пример
имя=значение Устанавливает файл cookie с именем имя и соответствующим значением значение username=fritz
expires=дата Устанавливает дату истечения срока действия файла cookie в соответствии со значением строки дата. Строка дата задается в стандартном для Internet формате GMT. Чтобы привести значение Date к этому формату, можно использовать метод toGMTString () соответствующего экземпляра Date expires=Sun, 01-Dec-2002 08:00:00 GMT
domain=домен Устанавливает домен для файла cookie в соответствии со значением строки домен, которая (с определенными допусками) должна соответствовать домену сервера, устанавливающего файл cookie. Файл cookie будет возвращаться только в ответ на запросы указанного домена domain=www.javascriptref.com
path=путь Строка, указывающая часть пути для домена, которому возвращается файл cookie path=/users/thomas/
secure Указывает, что файл cookie должен возвращаться только с использованием защищенного соединения (HTTPS) secure


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

Замечание. Некоторые программисты называют сеансовые строки cookie временными (т. е. сохраняемыми в памяти), а перманентные — дисковыми (т. е. сохраняемыми на диске).

Когда пользователь соединяется с узлом, браузер проверяет список строк cookie пользователя на соответствие. Соответствие определяется в результате анализа URL текущего запроса. Если домен и путь в файле cookie соответствуют данному URL (в определенном нестрогом смысле), лексема имя=значение из файла cookie направляется серверу.

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

username=fritz; favoritecolor=green; prefersmenus=yes

Мы опускаем детали того, как именно браузер определяет совпадение. Соответствующее полное описание можно найти на странице http://home.netscape.com/ newsref/std/cookie_spec.html. Ряд документов RFC (2109,2965 и особенно 2964) тоже содержат описания, связанные с технологией использования файлов cookie, но наиболее широкое распространение получили спецификации Netscape.
назад:


добавить комментарий
(без перезагрузки и регистрации)


10 случайных разделов

Что ищем на сайте ?


Примеры кода на сайте







@ 2008-2011 Amber
При использовании материалов ссылка на сайт обязательна
Яндекс.Метрика