Обяснете разликата между cookies, sessionStorage и localStorage.
sobes.tech AI
Отговор от AI
Област на видимост: бисквитките са достъпни както от клиента, така и от сървъра. sessionStorage и localStorage са достъпни само от клиента.
Време на живот: За бисквитките времето на живот се задава при създаването им (чрез атрибута expires или max-age). Ако не е указано, бисквитката се изтрива при затваряне на браузъра. sessionStorage съхранява данните само за текущата сесия (до затваряне на раздела или прозореца). localStorage съхранява данните безсрочно, докато не бъдат явно изтрити.
Размер: Максималният размер за бисквитките е около 4 KB. За sessionStorage и localStorage — от 5 MB до 10 MB, в зависимост от браузъра.
Изпращане с всеки заявка: Бисквитките автоматично се изпращат с всеки HTTP-заявка към домейна, за който са зададени, което може да увеличи трафика. Данните в sessionStorage и localStorage не се изпращат към сървъра.
Начин на достъп: Достъпът до бисквитките се осъществява чрез document.cookie (низ). Достъпът до sessionStorage и localStorage се осъществява чрез съответните обекти с използване на методите setItem, getItem, removeItem и clear.
// Задаване на бисквитка
document.cookie = "username=John Doe; expires=Thu, 18 Dec 2023 12:00:00 UTC; path=/";
// Получаване на бисквитка
let x = document.cookie;
// Задаване на данни в sessionStorage
sessionStorage.setItem("lastname", "Smith");
// Получаване на данни от sessionStorage
let y = sessionStorage.getItem("lastname");
// Задаване на данни в localStorage
localStorage.setItem("firstname", "Jane");
// Получаване на данни от localStorage
let z = localStorage.getItem("firstname");
| Характеристика | бисквитки | sessionStorage | localStorage |
|---|---|---|---|
| Област на видимост | Клиент и сървър | Само клиент | Само клиент |
| Време на живот | Задава се при създаване (expires/max-age), иначе до затваряне на браузъра | До затваряне на раздела/прозореца | Безсрочно (докато не бъде изрично изтрито) |
| Размер | ~4 KB | ~5-10 MB (зависи от браузъра) | ~5-10 MB (зависи от браузъра) |
| Изпращане с заявка | Да | Не | Не |
| Достъп | document.cookie |
sessionStorage.getItem/setItem |
localStorage.getItem/setItem |