Какие форматы данных используются для хранения cookie?

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

Ответ

Cookie могут хранить данные в нескольких форматах, выбор зависит от структуры и требований безопасности.

Основные форматы:

  1. Простой текст (Plain Text)

    • Ключ-значение с атрибутами.
    • Пример: session_id=abc123; expires=Wed, 21 Oct 2025 07:28:00 GMT; path=/; Secure; HttpOnly
  2. JSON (внутри значения)

    • Для передачи структурированных данных. Значение cookie — это строка, содержащая JSON.
    • Пример значения: {"theme":"dark","lang":"en"}
    • Требует кодирования (например, encodeURIComponent в JS) и парсинга на стороне клиента/сервера.
  3. Base64

    • Используется для кодирования бинарных данных или компактного представления JSON/текста.
    • Пример: eyJ1c2VyX2lkIjoxMjMsInJvbGUiOiJhZG1pbiJ9 (декодируется в {"user_id":123,"role":"admin"}).
  4. Подписанные/зашифрованные форматы (например, JWT)

    • Обеспечивают целостность и конфиденциальность. Сервер может проверить, что данные не были изменены клиентом.
    • Пример JWT: eyJhbGciOiJIUzI1NiIs... (состоит из Header.Payload.Signature).

Ключевые атрибуты cookie (независимо от формата значения): Domain, Path, Expires/Max-Age, Secure, HttpOnly, SameSite.