# Сессия в HTTP

На основе кук работают сессии. Сессии позволяют серверу запоминать клиента и хранить для него информацию.

Например, посетитель сайта может складывать товары в корзину магазина. И после перезагрузки страницы сервер идентифицирует клиента и покажет ему товары, которые были отложены в этом браузере.

Давайте разберемся, как это работает. Как вы уже знаете, протокол HTTP не хранит состояние в том смысле, что сервер не может отличить от какого клиента поступил запрос. Поэтому в данном случае используется обходной путь.

Его суть заключается в следующем. При первом обращении клиента сервер устанавливает ему куку со случайной уникальной строкой. Эта кука называется сессионной и обычно имеет имя `sessid`.

Сервер также хранит у себя список всех сессионных кук и привязывает к ним нужные данные. Например, список выбранных товаров в магазине.

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

Протокол HTTP не хранит данные между запросами. Тем не менее, сервер может различить пользователей. Как это реализовано?

← →
↑