Когда завершается браузерная сессия (sessionStorage)?

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

Ответ

Сессия sessionStorage в веб-браузере завершается при следующих условиях:

  1. Закрытие вкладки браузера — данные удаляются для конкретной вкладки.
  2. Закрытие окна браузера — если не активирована функция восстановления сессии.
  3. Явный вызов JavaScript-методов:
    • sessionStorage.clear() — удаляет все данные сессии.
    • sessionStorage.removeItem('key') — удаляет значение по конкретному ключу.

Ключевые отличия от localStorage:

  • sessionStorage привязан к вкладке/окну, а localStorage — к источнику (origin) и сохраняется между сессиями.
  • Данные sessionStorage не отправляются на сервер автоматически с каждым HTTP-запросом (в отличие от cookies).

Пример работы:

// Сохранение данных на время сессии вкладки
sessionStorage.setItem('authToken', 'abc123xyz');
sessionStorage.setItem('userPreferences', JSON.stringify({ theme: 'dark' }));

// Получение данных
const token = sessionStorage.getItem('authToken');
const prefs = JSON.parse(sessionStorage.getItem('userPreferences'));

// Удаление данных
sessionStorage.removeItem('authToken');
// Или полная очистка
sessionStorage.clear();

Важно: Время жизни не зависит от таймаута, только от состояния вкладки/окна.