Как долго (сколько времени) хранятся cookie?

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

Ответ

Время жизни cookie определяется атрибутами Expires или Max-Age, которые задаются сервером при создании. Без этих атрибутов cookie считается сессионным и удаляется при закрытии браузера.

Типы cookie по времени хранения:

  1. Сессионные (Session Cookies): Не имеют атрибута Expires/Max-Age. Удаляются после закрытия вкладки/браузера.
  2. Постоянные (Persistent Cookies): Имеют установленный срок жизни. Хранятся на диске до наступления даты истечения (Expires) или истечения интервала (Max-Age).

Пример установки cookie с разным временем жизни:

// Установка постоянного cookie с истечением через 7 дней (атрибут Expires)
document.cookie = "user_id=12345; expires=" + new Date(Date.now() + 7 * 864e5).toUTCString() + "; path=/";

// Установка постоянного cookie с временем жизни 1 час (атрибут Max-Age)
document.cookie = "session_token=abcde; max-age=3600; path=/; secure";

// Установка сессионного cookie (без срока истечения)
document.cookie = "preferred_lang=ru; path=/";

Почему это важно для тестирования:

  • Проверка авторизации: Постоянные cookie позволяют оставаться в системе после перезапуска браузера.
  • Тестирование безопасности: Убедитесь, что критичные cookie (например, токены) имеют разумный срок жизни и атрибуты HttpOnly и Secure.
  • Очистка данных: Понимание типов cookie необходимо для корректного тестирования сценариев "логаута" и очистки кеша.