Junior
Обяснете разликата между cookies, sessionStorage и localStorage.
sobes.tech AI
Отговор от AI
| Механизъм | Приблизителен размер | Продължителност на живота | Достъп | Предава се на сървъра | Използване |
|---|---|---|---|---|---|
| Cookies | 4 KB | Времето на валидност, определено от сървъра или браузъра | Текущият документ и поддомейни (зависи от настройките) | При всяко HTTP искане | Авторизация, проследяване, персонализирани настройки на потребителя |
| localStorage | 5-10 MB | Безсрочно (докато потребителят не изчисти) | Само текущият origin (протокол, домейн, порт) | Не | Съхранение на потребителски настройки, данни за състоянието на приложението |
| sessionStorage | 5-10 MB | До затваряне на раздела или прозореца на браузъра | Само текущият 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();