Sobes.tech
Junior

Paaiškinkite skirtumą tarp cookies, sessionStorage ir localStorage.

sobes.tech AI

Atsakymas iš AI

Mechanizmas Apytikslis dydis Gyvenimo trukmė Prieiga Perduodama į serverį Naudojimas
Cookies 4 KB Galiojimo laikas, nustatytas serverio arba naršyklės Dabartinis dokumentas ir subdomenai (priklauso nuo nustatymų) Kiekvieno HTTP užklausos metu Autentifikacija, sekimas, naudotojo pritaikyti nustatymai
localStorage 5-10 MB Neribota (kol naudotojas ištrina) Tik dabartinis šaltinis (protokolas, domenas, prievadas) Ne Naudotojo nustatymų saugojimas, programos būsenos duomenys
sessionStorage 5-10 MB Iki skirtuko arba naršyklės lango uždarymo Tik dabartinis šaltinis (protokolas, domenas, prievadas) Ne Duomenų saugojimas vienos sesijos metu

Cookies:

  • Siunčiami su kiekvienu HTTP užklausa į serverį, kas gali padidinti srautą.
  • Pagrindinis tikslas: naudotojo identifikavimas (sesijos cookies), pageidavimų išsaugojimas, naudotojo veiksmų sekimas.
  • Pasiekiami tiek kliento (JavaScript), tiek serverio pusėje.
  • Gali būti apriboti pagal domeną ir kelią.
  • Laikomi mažiau saugiais saugant jautrius duomenis dėl automatinio siuntimo į serverį.

localStorage:

  • Duomenys saugomi vietiniame naršyklės atmintyje.
  • Naudojamas nuolatiniam duomenų saugojimui, kuris nereikalauja siųsti į serverį su kiekvienu užklausa.
  • Turi paprastą JavaScript API.
  • Duomenys saugomi kaip raktas-reikšmė poros.
  • Nepasiekiami iš kitų originų.
// Nustatyti reikšmę
localStorage.setItem('username', 'john.doe');

// Gauti reikšmę
let username = localStorage.getItem('username');

// Pašalinti reikšmę
localStorage.removeItem('username');

// Išvalyti visą localStorage
localStorage.clear();

sessionStorage:

  • Panašus į localStorage, bet duomenys saugomi tik iki dabartinio skirtuko arba naršyklės lango uždarymo.
  • Idealiai tinka laikiniems duomenims, susijusiems su dabartine sesija (pvz., formos duomenys, pirkinių krepšelis).
  • Taip pat turi paprastą JavaScript API, panašų į localStorage.
  • Duomenys prieinami tik dabartiniame šaltinyje.
// Nustatyti reikšmę
sessionStorage.setItem('sessionId', 'abc123');

// Gauti reikšmę
let sessionId = sessionStorage.getItem('sessionId');

// Pašalinti reikšmę
sessionStorage.removeItem('sessionId');

// Išvalyti visą sessionStorage
sessionStorage.clear();