Обяснете разликата между cookies, sessionStorage и localStorage.
sobes.tech AI
Отговор от AI
Cookies съхраняват малки обеми текстова информация (до 4KB) от страната на клиента, изпращат се с всеки HTTP заявка към домейна, който ги е създал. Могат да имат срок на валидност. Използват се за авторизация, проследяване на потребители, запазване на потребителски предпочитания.
localStorage съхранява данни без срок на валидност (докато потребителят не ги изтрие или браузърът не бъде затворен) на страната на клиента (до 5-10MB в зависимост от браузъра). Данните са достъпни между сесиите на браузъра, но само за скриптове от същия произход (домейн, протокол, порт). Не се изпращат автоматично с HTTP заявки. Използват се за дългосрочно съхранение на данни, запазване на настройки на приложението.
sessionStorage съхранява данни за една сесия на браузъра (докато разделът или прозорецът са отворени). Данните се изтриват при затваряне на раздела или прозореца. Размерът на съхранението е подобен на localStorage (до 5-10MB). Данните са достъпни само за скриптове от същия произход. Не се изпращат автоматично с HTTP заявки. Използват се за временна съхранение на данни, специфични за текущата сесия.
| Характеристика | Cookies | localStorage | sessionStorage |
|---|---|---|---|
| Срок на съхранение | Срок на валидност или затваряне на браузъра | Докато не бъдат изтрити от потребителя или приложението | Докато е отворен разделът или прозорецът |
| Размер на данните | До 4KB | До 5-10MB | До 5-10MB |
| Достъпност | Изпращат се с HTTP заявки към домейна | Само чрез JavaScript от същия произход | Само чрез JavaScript от същия произход |
| Достъп между раздели | Да | Да | Не (за различни раздели) |
| Назначение | Авторизация, проследяване, предпочитания | Дългосрочно съхранение, настройки | Временна съхранение в рамките на сесията |
Пример за използване на localStorage:
// Запазване на данни
localStorage.setItem('userName', 'Alice');
// Получаване на данни
const userName = localStorage.getItem('userName');
console.log(userName); // Изход: Alice
// Изтриване на данни
// localStorage.removeItem('userName');
// Изчистване на цялото хранилище
// localStorage.clear();
Пример за използване на sessionStorage:
// Запазване на данни
sessionStorage.setItem('orderId', '12345');
// Получаване на данни
const orderId = sessionStorage.getItem('orderId');
console.log(orderId); // Изход: 12345
// Изтриване на данни
// sessionStorage.removeItem('orderId');
// Изчистване на цялото хранилище
// sessionStorage.clear();