Sobes.tech
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();