Поддержка сеансов работы пользователей

Существуют протоколы, которые поддерживают "состояние" взаимодействия с клиентом начиная с начального сообщения (начала сеанса работы) и до сообщения о завершении работы. Примерами таких протоколов являются FTP, SMTP и POP. HTTP является протоколом без поддержки состояния (stateless), т. с. web-сервер не хранит данные, связанные с запросами пользователя. В отличие от приведенных выше протоколов каждый обмен HTTP-сообщениями состоит из одного запроса и одного ответа (единичная HTTP-транзакция). Таким образом, протокол HTTP не требует от клиентов и серверов поддерживать состояние (данные) между передаваемыми сообщениями.

Однако web-приложениям часто требуется выполнять поддержку состояния сеанса работы, т. е. сохранять на сервере данные, переданные в одном запросе, чтобы их можно было использовать при обработке последующих запросов в данном сеансе работы.

Для поддержки состояния между HTTP-запросами необходимо иметь некоторый способ (для участников взаимодействия) передавать в HTTP-запросах ссылки на информацию о состоянии сеанса работы. Протокол HTTP/1.1 позволяет это делать с помощью cookie, работа с которыми выполняется с помощью заголовков Set-Cookie и Cookie.

Заголовок ответа Set-Cookie отправляется сервером браузеру, и в нем содержится информация о состоянии или идентификатор сеанса, который ссылается на состояние, хранимое на стороне сервера.

Заголовок ответа Cookie передается браузером в последующих запросах тому же самому (или связанному с ним) серверу. В нем содержатся или элементы самой информации состояния, или ссылки на идентификатор сеанса, который помогает связать запросы с состоянием текущего сеанса. Web-приложения могут использовать заголовок Set-Cookie следующим образом:

Set-Cookie: <имя>=<значение>

[; Мах- Аде=<значение >] [; Expires=<AaTa>]

[; Ра№=<путь>] [: Domain=<MMa домена>]

[; Secure] [; Version=<eepcna>]

Пара <имя>=<значение> отправляется браузером назад приславшему их серверу в последующих запросах. Атрибут Max-Age задает максимальное время, в течение которого данный cookie может использоваться (в секундах). Атрибут Expires представляет собой устаревший (уже не рекомендуемый) способ определения времени жизни данного cookie путем задания даты окончания срока его использования. Атрибуты Path и Domain задают границы применения cookie, т. е. для каких серверных доменов и URL-путей должен использоваться данный cookie. Атрибут Secure сообщает браузеру выполнять передачу последующих заголовков Cookie по шифрованному соединению. И наконец, атрибут Version указывает на версию спецификации управления состоянием.

 
< Пред   СОДЕРЖАНИЕ     След >