Сессия в HTTP
На основе кук работают сессии. Сессии позволяют серверу запоминать клиента и хранить для него информацию.
Например, посетитель сайта может складывать товары в корзину магазина. И после перезагрузки страницы сервер идентифицирует клиента и покажет ему товары, которые были отложены в этом браузере.
Давайте разберемся, как это работает. Как вы уже знаете, протокол HTTP не хранит состояние в том смысле, что сервер не может отличить от какого клиента поступил запрос. Поэтому в данном случае используется обходной путь.
Его суть заключается в следующем.
При первом обращении клиента сервер
устанавливает ему куку со случайной
уникальной строкой. Эта кука называется
сессионной и обычно имеет
имя sessid
.
Сервер также хранит у себя список всех сессионных кук и привязывает к ним нужные данные. Например, список выбранных товаров в магазине.
При следующем обращении клиента он будет отсылать на сервер сессионную куку и сервер идентифицирует его по этой куке и сможет получить данные, которые сохранены на сервере для данного клиента.
Протокол HTTP не хранит данные между запросами. Тем не менее, сервер может различить пользователей. Как это реализовано?