Какую роль выполняют Cookies в веб-приложениях?

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

Ответ

Cookies (куки) — это небольшие фрагменты данных, которые сервер отправляет браузеру пользователя и которые браузер автоматически возвращает при последующих запросах. Они используются для управления состоянием (state) в stateless-протоколе HTTP.

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

Сценарий Описание Пример данных в cookie
Управление сессией Идентификация пользователя между запросами. session_id=abc123def456
Персонализация Сохранение пользовательских предпочтений. lang=en; theme=dark
Отслеживание (Tracking) Аналитика поведения, ретаргетинг в рекламе. _ga=GA1.2.12345.67890
Корзина покупок Временное хранение данных между визитами. cart_items=[id1, id2]

Техническая реализация (HTTP-заголовки):

# Сервер устанавливает cookie
HTTP/1.1 200 OK
Set-Cookie: sessionId=e8bb43229de9; Path=/; Secure; HttpOnly; SameSite=Lax
Set-Cookie: preferred_lang=ru; Max-Age=2592000; Path=/

# Браузер отправляет cookie обратно при следующем запросе
GET /dashboard HTTP/1.1
Host: example.com
Cookie: sessionId=e8bb43229de9; preferred_lang=ru

Критически важные атрибуты для безопасности:

  • HttpOnly: Запрещает доступ к cookie через JavaScript (защита от XSS-атак).
  • Secure: Передача cookie только по защищённому HTTPS-соединению.
  • SameSite: Контролирует отправку cookie с cross-site запросами (защита от CSRF-атак). Возможные значения: Strict, Lax, None.
  • Max-Age / Expires: Определяет срок жизни cookie.

Без cookies каждый HTTP-запрос был бы полностью анонимным, что сделало бы невозможной работу персонализированных веб-приложений, интернет-магазинов и систем аутентификации.