Что такое сессия?qa-92

Сессия (англ. session) — это временный промежуток взаимодействия пользователя с приложением, в течение которого сохраняется его контекст и данные. В веб-разработке сессии играют ключевую роль в управлении состоянием пользователя (аутентификация, корзина покупок, настройки).

Основные характеристики сессии

  1. Временное хранение данных
    • Данные доступны только во время активной сессии (например, пока пользователь авторизован).
  2. Идентификация пользователя
    • Сессия обычно привязывается к уникальному идентификатору (session ID).
  3. Механизмы хранения
    • Куки (клиентская сторона)
    • Серверные хранилища (Redis, базы данных)

Как работают сессии?

  1. Пользователь входит в систему → сервер создает уникальный session_id.
  2. session_id сохраняется:
    • В куки у пользователя (если используется браузер).
    • В хранилище на сервере (с сопутствующими данными: логин, роль, настройки).
  3. При каждом запросе session_id отправляется на сервер для верификации.
// Пример установки сессионной куки (Express.js)
res.cookie('session_id', 'abc123', {
  httpOnly: true,
  maxAge: 24 * 60 * 60 * 1000 // 1 день
});

Зачем сессии нужны в тестировании?

  1. Проверка безопасности:
    • Утечка session_id через URL (небезопасно!).
    • Защита от hijacking (куки с флагами Secure и HttpOnly).
  2. Тестирование истечения сессии:
    • Корректный выход из системы после timeout (например, 30 минут неактивности).
  3. Консистентность данных:
    • Сохранение состояния корзины покупок между вкладками браузера.
  4. Работа с параллельными сессиями:
    • Можно ли войти с одного аккаунта на разных устройствах?

Отличие сессии от кэша и куки

Характеристика Сессия Кэш Куки
Хранение Сервер/клиент Клиент/сервер Только клиент
Время жизни До выхода/таймаута Зависит от настроек Задается вручную
Пример Данные авторизации Сохраненные стили сайта Трекеры аналитики

Резюмируем:

Сессия — это механизм поддержания состояния пользователя, критичный для безопасности и удобства. QA-инженер должен тестировать: срок действия, защиту данных и сценарии прерывания сессии (например, при смене пароля).