Загрузка...
Загрузка...
Продолжая работу с платформой, вы принимаете условия Политики конфиденциальности и использование файлов cookie.
В браузере существует несколько видов встроенных хранилищ данных, которые можно использовать для сохранения состояния пользователя, кэша, настроек и т.п.
| Хранилище | Объём | Доступность | Срок жизни | Отправляется на сервер | Поддержка |
|---|---|---|---|---|---|
| Cookie | ~4 KB | Сервер и клиент | Зависит от Expires | Да | Все браузеры |
| LocalStorage | ~5–10 MB | Только клиент | До удаления | Нет | Все браузеры |
| SessionStorage | ~5–10 MB | Только клиент | Пока открыта вкладка | Нет | Все браузеры |
| IndexedDB | 100+ MB | Только клиент | До удаления | Нет | Все браузеры |
Set-Cookie заголовок или document.cookiedocument.cookie = "theme=dark; path=/; max-age=3600";
localStorage.setItem("theme", "dark");
const theme = localStorage.getItem("theme");
localStorage.removeItem("theme");
localStorage, но живёт только в рамках одной вкладкиsessionStorage.setItem("step", "2");
sessionStorage.getItem("step");
const db = indexedDB.open("MyDB", 1);
Использовать проще через обёртки:
| Сценарий | Рекомендуемое хранилище |
|---|---|
| Авторизация, токены | cookie (с флагами Secure + HttpOnly) |
| Настройки пользователя | localStorage |
| Временные данные | sessionStorage |
| Кэш оффлайн данных, PWA | indexedDB |
Безопасность:
Никогда не храните токены доступа в LocalStorage или SessionStorage, если их можно украсть через XSS. Используйте HttpOnly cookie.
cookie для передачи между клиентом и серверомlocalStorage для постоянных данных на клиентеsessionStorage для временных, одноразовых данныхIndexedDB для сложного и большого хранения