Как работает cookie

Cookie — это пара «ключ–значение», которую браузер хранит локально и автоматически прикрепляет к HTTP-запросам на соответствующий домен.

Упрощённый цикл:
1. Пользователь впервые открывает сайт.
2. Сервер отвечает с заголовком Set-Cookie: user_id=abc123; Max-Age=2592000; Secure.
3. Браузер сохраняет куку.
4. При следующем запросе к тому же домену браузер автоматически добавляет Cookie: user_id=abc123.
5. Сервер идентифицирует пользователя и показывает персонализированный контент.

Ключевые атрибуты cookie

Атрибут Значение Зачем нужен
Max-Age / Expires Срок жизни Cookie без срока = сессионная (удаляется при закрытии браузера)
Secure Только HTTPS Защита от перехвата по незащищённому соединению
HttpOnly Недоступен JS Защита от XSS-атак (чтение через document.cookie невозможно)
SameSite=Strict/Lax Политика кросс-сайтовой отправки Защита от CSRF
Domain К какому домену привязана .example.com — для всех поддоменов

Cookie в персонализации и A/B-тестировании

Для платформ персонализации cookie выполняют две критически важные задачи:

1. Анонимная идентификация. До авторизации пользователь — анонимус. Cookie позволяет привязать историю просмотров, добавлений в корзину и клики к одному профилю и использовать эти данные для рекомендаций.

2. Sticky assignment в A/B-тестах. При распределении по группам cookie фиксирует принадлежность: ab_group=variant_b. Если удалить куку, пользователь может оказаться в другой группе — это «загрязняет» результаты теста.

Важно: при интеграции платформы персонализации убедитесь, что cookie устанавливается как first-party (на домене магазина), а не third-party. Браузеры блокируют third-party куки всё агрессивнее, и данные будут теряться.

Деградация cookie и альтернативы

Safari блокирует third-party cookie с 2020 года (ITP), Firefox — с 2019, Chrome объявлял о планах отказа (Privacy Sandbox). Это существенно меняет экосистему рекламной атрибуции и аналитики.

Для персонализации это менее критично, потому что:
— Платформа персонализации устанавливает first-party cookie на домене магазина.
— Авторизованные пользователи идентифицируются по ID в базе данных, а не по куке.
— LocalStorage — альтернатива для сессионных данных, не требующих отправки на сервер.