Чем Session Storage отличается от Local Storage?

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

Ответ

Session Storage — это механизм клиентского хранилища, аналогичный Local Storage, но с ключевым отличием в времени жизни данных.

Основное отличие: Данные в sessionStorage сохраняются только в течение сессии конкретной вкладки/окна браузера. При закрытии вкладки данные безвозвратно удаляются.

Сравнительная таблица: Характеристика Session Storage Local Storage
Время жизни Данные живут в рамках сессии вкладки браузера. Данные сохраняются до явного удаления.
Объем ~5 МБ на домен. ~5-10 МБ на домен.
Область видимости Изолирована для каждой вкладки/окна (даже с тем же URL). Общая для всех вкладок и окон с одним происхождением (origin).
API Аналогичен (setItem, getItem, removeItem, clear). Аналогичен.
Формат данных Только строки. Только строки.

Пример использования Session Storage:

// Сохранение временных данных формы при переходе между шагами в одной вкладке
sessionStorage.setItem('multiStepFormData', JSON.stringify({
    step1: { name: 'John' },
    step2: { email: 'john@example.com' }
}));

// Получение данных на следующей странице/шаге
const formData = JSON.parse(sessionStorage.getItem('multiStepFormData'));
console.log(formData.step1.name); // 'John'

// Данные будут потеряны, если пользователь закроет вкладку.

Типичные сценарии применения:

  • Временное хранение данных многостраничной формы (wizard).
  • Кэширование информации в рамках одной сессии для избежания повторных запросов.
  • Сохранение состояния UI, которое должно сбрасываться при новом открытии приложения.