← Назад к вопросам

Сколько хранится cookie?

2.0 Middle🔥 181 комментариев
#Soft skills и карьера#Автоматизация тестирования

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Время хранения Cookie: подробный обзор

Время хранения cookie определяется типом их создания и параметрами, заданными сервером или клиентским скриптом. Этот вопрос фундаментален для понимания механизмов аутентификации, сессий и отслеживания пользователей в веб-приложениях. Как QA Engineer, важно понимать эти различия для корректного тестирования функциональности, безопасности и пользовательского опыта.

Основные типы cookie по времени жизни

1. Сессионные cookie (Session Cookies)

  • Время хранения: Существуют только в течение текущей сессии браузера.
  • Механизм: Не имеют явного срока истечения (Expires или Max-Age). Удаляются при закрытии браузера или вкладки.
  • Назначение: Используются для временных данных, например, для хранения содержимого корзины покупок, данных формы во время навигации или идентификатора сессии на сервере.
  • Пример заголовка Set-Cookie:
    Set-Cookie: sessionid=abc123; Path=/; HttpOnly
    
  • Тестирование: Проверяем, что данные (например, логин) теряются после полного закрытия браузера.

2. Постоянные cookie (Persistent / Permanent Cookies)

  • Время хранения: Определяется параметрами Expires (дата истечения) или Max-Age (время жизни в секундах). Хранятся на устройстве пользователя до истечения срока или ручного удаления.
  • Назначение: Используются для долгосрочных предпочтений (тема, язык), информации для повторного входа («Запомнить меня»), аналитики и отслеживания.
  • Примеры заголовков Set-Cookie:
    Set-Cookie: user_theme=dark; Expires=Fri, 31 Dec 2024 23:59:59 GMT; Path=/
    Set-Cookie: analytics_id=xyz789; Max-Age=2592000; Path=/; SameSite=Lax
    
    (Здесь `Max-Age=2592000` устанавливает срок жизни 30 дней).
  • Тестирование: Проверяем, что cookie сохраняются после перезапуска браузера и ОС, и корректно удаляются по истечении срока (может потребоваться модификация системного времени для тестов).

Факторы, влияющие на срок жизни cookie

  1. Действия пользователя: Очистка кэша и cookie в настройках браузера немедленно удаляет их.
  2. Браузерные политики: Современные браузеры могут удалять cookie с истекшим сроком в процессе обслуживания или для экономии места.
  3. Настройки безопасности браузера: Режим «Инкогнито»/Приватный просмотр: все cookie, как правило, удаляются после закрытия приватного окна.
  4. Атрибуты cookie:
    *   `HttpOnly`: Запрещает доступ к cookie через JavaScript (только для сервера), что не влияет на срок хранения, но критично для безопасности.
    *   `Secure`: Передача cookie только по HTTPS. Без него браузер может не сохранить cookie при работе с незащищенным `http://`.
    *   `SameSite`: Ограничивает отправку cookie при кросс-сайтовых запросах (`Strict`, `Lax`, `None`). При `SameSite=None` обязательно должен быть установлен атрибут `Secure`.

Практическое значение для тестирования (QA)

  1. Тестирование сценариев истечения срока действия:
    *   Для тестирования истечения срока `Max-Age` можно использовать инструменты разработчика (DevTools) для ручной установки cookie с прошедшей датой в `Expires`.
    *   Пример кода для симуляции просроченного cookie через Console (если cookie не `HttpOnly`):
    ```javascript
    // Устанавливаем cookie с истекшим сроком
    document.cookie = "test_cookie=old_value; Expires=Thu, 01 Jan 1970 00:00:00 UTC; Path=/;";
    ```

2. Тестирование восстановления сессии: После закрытия и открытия браузера сессионные cookie не должны восстанавливать авторизацию, а постоянные (с «Запомнить меня») — должны. 3. Кросс-браузерное тестирование: Поведение при закрытии вкладки vs. всего браузера может незначительно отличаться. Необходимо проверять на Chrome, Firefox, Safari. 4. Тестирование в мобильных приложениях и WebView: Механизмы хранения могут отличаться от десктопных браузеров. 5. Валидация безопасности: Проверяем, что критичные сессионные идентификаторы не установлены как постоянные и помечены атрибутами HttpOnly и Secure.

Заключение

Таким образом, прямой ответ на вопрос «Сколько хранится cookie?» — это зависит от их типа. Сессионные хранятся до закрытия браузера, а срок жизни постоянных явно задается сервером (от секунд до нескольких лет). Для QA-инженера критически важно не только знать эти правила, но и уметь их проверять: моделировать различные сценарии (истечение срока, закрытие сессии), использовать DevTools для инспекции и модификации cookie, а также учитывать браузерные особенности и атрибуты безопасности при составлении тест-кейсов. Это обеспечивает корректную работу функций, зависящих от состояния (авторизация, корзина, настройки), и защищенность приложения.

Сколько хранится cookie? | PrepBro