Что такое HTTP cookie и какие данные в них хранятся?

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

Ответ

HTTP cookie — это небольшой фрагмент данных, отправляемый сервером браузеру пользователя и хранимый на стороне клиента. Браузер автоматически отправляет соответствующие cookie обратно серверу с каждым последующим запросом к тому же домену.

Основные типы данных, хранящихся в cookie:

Тип данных Назначение Пример значения
Идентификатор сессии Поддержание состояния аутентификации пользователя на сайте (сессия). session_id=abc123xyz456
Настройки пользователя Персонализация интерфейса (язык, тема, региональные настройки). lang=en; theme=dark
Данные для отслеживания Аналитика поведения пользователя, ретаргетинг в рекламе. tracking_id=ga1.2.123456.789
Данные корзины покупок Временное хранение состояния корзины в интернет-магазине. cart_items=[101, 205]

Пример HTTP-заголовка Set-Cookie от сервера:

Set-Cookie: sessionId=e8bb43229de9; Expires=Wed, 21 Oct 2025 07:28:00 GMT; Domain=.example.com; Path=/; Secure; HttpOnly; SameSite=Lax

Ключевые атрибуты cookie (флаги безопасности и управления):

  • Expires / Max-Age: Определяет срок жизни cookie.
  • Domain и Path: Определяют, к каким URL будут отправляться cookie.
  • Secure: Cookie будет передаваться только по защищенному протоколу HTTPS.
  • HttpOnly: Запрещает доступ к cookie через JavaScript (document.cookie), защищая от XSS-атак.
  • SameSite: Контролирует отправку cookie при кросс-сайтовых запросах (значения: Strict, Lax, None).

Практический доступ:

  • В браузере: Инструменты разработчика (DevTools) → Вкладка ApplicationStorageCookies.
  • В JavaScript (если не HttpOnly): console.log(document.cookie).
  • В автотестах (например, Selenium): driver.get_cookies().