Skip to main content
Практика завдань

Сховище браузера: cookie, LocalStorage, SessionStorage та IndexedDB

У браузері є кілька типів вбудованого зберігання даних, які можна використовувати для збереження стану користувача, кешу, налаштувань тощо.


Основні типи зберігання

ЗберіганняОб'ємДоступністьТривалістьВідправляється на серверПідтримка
Cookie~4 KBСервер і клієнтЗалежить від ExpiresТакУсі браузери
LocalStorage~5–10 MBТільки клієнтДо видаленняНіУсі браузери
SessionStorage~5–10 MBТільки клієнтПоки вкладка відкритаНіУсі браузери
IndexedDB100+ MBТільки клієнтДо видаленняНіУсі браузери

  • Дозволяють переносити дані між клієнтом і сервером
  • Використовуються для авторизації, сесій, персоналізації
  • Відправляються в кожному HTTP запиті, тому повинні бути компактними
  • Налаштовуються через заголовок Set-Cookie або document.cookie
js
document.cookie = "theme=dark; path=/; max-age=3600";

LocalStorage

  • Підходить для довгострокового зберігання даних (тема, токени, налаштування)
  • Доступний тільки на клієнті
  • Переживає перезапуск браузера
js
localStorage.setItem("theme", "dark"); const theme = localStorage.getItem("theme"); localStorage.removeItem("theme");

SessionStorage

  • Схожий на localStorage, але існує тільки в межах однієї вкладки
  • Після закриття вкладки — дані видаляються
js
sessionStorage.setItem("step", "2"); sessionStorage.getItem("step");

IndexedDB

  • Асинхронна база даних у браузері (ключ-значення + індекси)
  • Дозволяє зберігати структуровані об'єкти, навіть файли
  • Підходить для офлайн-перших додатків, PWA, великих даних
js
const db = indexedDB.open("MyDB", 1);

Легше використовувати через обгортки:

Коли використовувати що?

СценарійРекомендоване зберігання
Авторизація, токениcookie (з прапорами Secure + HttpOnly)
Налаштування користувачаlocalStorage
Тимчасові даніsessionStorage
Офлайн кеш даних, PWAindexedDB

Безпека:

Ніколи не зберігайте токени доступу в LocalStorage або SessionStorage, якщо їх можна вкрасти через XSS. Використовуйте HttpOnly cookie.

Висновок

  • Використовуйте cookie для передачі між клієнтом і сервером
  • Використовуйте localStorage для постійних даних клієнта
  • Використовуйте sessionStorage для тимчасових, одноразових даних
  • Використовуйте IndexedDB для складного та великого зберігання

Зміст

Основні типи зберіганняCookieLocalStorageSessionStorageIndexedDBКоли використовувати що?Висновок

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.

Дочитали статтю?
Практика завдань