Что такое cookie (куки) в контексте веб-разработки?

«Что такое cookie (куки) в контексте веб-разработки?» — вопрос из категории Веб-тестирование, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Cookie (куки) — это механизм клиентского хранилища, при котором сервер с помощью HTTP-заголовка Set-Cookie передает браузеру небольшие текстовые данные (пары «ключ-значение»). Браузер сохраняет их локально и автоматически включает в заголовок Cookie всех последующих запросов к соответствующему домену.

Основные сценарии использования:

  1. Управление сессиями: Самый частый случай — хранение уникального идентификатора сессии (sessionId), позволяющего серверу «узнавать» аутентифицированного пользователя без постоянного ввода логина и пароля.
  2. Персонализация: Сохранение пользовательских предпочтений (язык интерфейса, тема оформления, региональные настройки).
  3. Трекинг и аналитика: Сбор анонимизированных данных о поведении пользователя на сайте для аналитики (например, 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 МБ (зависит от браузера).