Ответ
Cookie (куки) — это механизм клиентского хранилища, при котором сервер с помощью HTTP-заголовка Set-Cookie передает браузеру небольшие текстовые данные (пары «ключ-значение»). Браузер сохраняет их локально и автоматически включает в заголовок Cookie всех последующих запросов к соответствующему домену.
Основные сценарии использования:
- Управление сессиями: Самый частый случай — хранение уникального идентификатора сессии (
sessionId), позволяющего серверу «узнавать» аутентифицированного пользователя без постоянного ввода логина и пароля. - Персонализация: Сохранение пользовательских предпочтений (язык интерфейса, тема оформления, региональные настройки).
- Трекинг и аналитика: Сбор анонимизированных данных о поведении пользователя на сайте для аналитики (например, Google Analytics) и таргетированной рекламы.
Структура и важные параметры:
Set-Cookie: <имя>=<значение>; Expires=<дата>; Max-Age=<секунды>; Domain=<домен>; Path=<путь>; Secure; HttpOnly; SameSite=<политика>
<имя>=<значение>: Полезная нагрузка cookie (данные).Expires/Max-Age: Время жизни. Без них cookie становится «сессионным» и удаляется при закрытии браузера.Secure: Обязательное использование HTTPS.HttpOnly: Защита от кражи через XSS-уязвимости (блокировка доступа из JavaScript).SameSite: Защита от CSRF-атак. ЗначениеLax(рекомендуемое по умолчанию) разрешает отправку cookie с безопасными кросс-сайтовыми запросами (например, переход по ссылке).
Ограничения: Как правило, браузеры ограничивают:
- Размер одного cookie — ~4 КБ.
- Количество cookie на один домен — ~50-150 (зависит от браузера).
- Общий размер всех cookie — ~4-10 МБ (зависит от браузера).