Junior
109
questionbank
Объясните разницу между cookies, sessionStorage и localStorage.
Ответ от нейросети
sobes.tech AI
| Механизм | Размер (примерно) | Срок жизни | Доступ | Передается на сервер | Использование |
|---|---|---|---|---|---|
| Cookies | 4 КБ | Срок годности, установленный сервером или браузером | Текущий документ и поддомены (в зависимости от настроек) | При каждом HTTP-запросе | Авторизация, отслеживание, кастомные настройки пользователя |
| localStorage | 5-10 МБ | Бессрочно (пока пользователь не очистит) | Только текущий origin (протокол, домен, порт) | Нет | Хранение пользовательских настроек, данных о состоянии приложения |
| sessionStorage | 5-10 МБ | До закрытия вкладки/окна браузера | Только текущий origin (протокол, домен, порт) | Нет | Хранение данных в пределах одной сессии пользователя |
Cookies:
- Отправляются с каждым HTTP-запросом на сервер, что может увеличить трафик.
- Основное назначение: идентификация пользователя (сессионные куки), запоминание предпочтений, отслеживание действий пользователя.
- Доступны как на стороне клиента (JavaScript), так и на стороне сервера.
- Могут быть ограничены по домену и пути.
- Считаются менее безопасными для хранения чувствительных данных из-за автоматической отправки на сервер.
localStorage:
- Данные хранятся локально в браузере пользователя.
- Используется для постоянного хранения данных, которые не требуется отправлять на сервер при каждом запросе.
- Имеет простой JavaScript API.
- Данные хранятся в виде пар ключ-значение.
- Недоступен с других origin'ов.
// Установка значения
localStorage.setItem('username', 'john.doe');
// Получение значения
let username = localStorage.getItem('username');
// Удаление значения
localStorage.removeItem('username');
// Очистка всего localStorage
localStorage.clear();
sessionStorage:
- Аналогичен localStorage, но данные хранятся только до закрытия текущей вкладки или окна браузера.
- Идеально подходит для временного хранения данных, связанных с текущей сессией пользователя (например, данные формы, корзина интернет-магазина).
- Также имеет простой JavaScript API, аналогичный localStorage.
- Данные доступны только на текущем origin'е.
// Установка значения
sessionStorage.setItem('sessionId', 'abc123');
// Получение значения
let sessionId = sessionStorage.getItem('sessionId');
// Удаление значения
sessionStorage.removeItem('sessionId');
// Очистка всего sessionStorage
sessionStorage.clear();