Как сайт связывает страницы в одну корзину
При загрузке страницы браузер отправляет сайту запрос, но сам по себе каждый такой запрос не сообщает: «это тот же посетитель, что минуту назад положил товар в корзину». Веб-протокол устроен так, что страницы обычно запрашиваются независимо друг от друга. Поэтому сайту нужен способ связать действия между запросами.
Обычно для этого браузер хранит небольшую cookie — текстовый идентификатор сессии. Сессия — временная связь между действиями одного посетителя. При следующем обращении браузер автоматически прикладывает идентификатор к запросу, а сервер находит по нему сохранённое состояние корзины: например, перечень товаров и их количество. Так новая страница получает нужные данные и показывает ту же корзину.
Почему в cookie часто нет самих товаров
Cookie может содержать только короткий ключ, а список покупок хранится на сервере. Это удобнее: перечень товаров может быть длинным, а серверу проще обновлять его и рассчитывать цены, наличие и доставку в одном месте. В некоторых системах часть сведений о корзине действительно помещается в cookie, но браузер всё равно передаёт её сайту при запросах.
У временной cookie срок действия может закончиться после закрытия браузера; другая сохраняется дольше, чтобы корзина пережила перерыв между посещениями. Поэтому содержимое иногда остаётся на месте, а иногда исчезает — это зависит от настроек магазина и срока хранения.
Что происходит без этого связующего ключа
Без cookie или другого механизма идентификации серверу пришлось бы воспринимать каждый переход как новое посещение. Корзина не обязательно пропала бы навсегда, но сайт не смог бы надёжно понять, кому показать сохранённый выбор. Маленький текстовый ключ превращает разрозненные запросы в последовательность действий — и позволяет положить товар в корзину, перейти к описанию доставки, а затем вернуться к покупке.






