Sobes.tech
Junior

Vysvetlite rozdiel medzi cookies, sessionStorage a localStorage.

sobes.tech AI

Odpoveď od AI

Mechanizmus Približná veľkosť Doba životnosti Prístup Prenáša sa na server Použitie
Cookies 4 KB Doba platnosti stanovená serverom alebo prehliadačom Aktuálny dokument a subdomény (závisí od nastavení) Pri každom HTTP požiadavke Autentifikácia, sledovanie, vlastné nastavenia používateľa
localStorage 5-10 MB Neobmedzene (kým používateľ nevymaže) Iba aktuálny origin (protokol, doména, port) Nie Uloženie používateľských nastavení, údaje o stave aplikácie
sessionStorage 5-10 MB Do zatvorenia záložky alebo okna prehliadača Iba aktuálny origin (protokol, doména, port) Nie Uloženie údajov v rámci jednej relácie používateľa

Cookies:

  • Posielajú sa s každým HTTP požiadavkom na server, čo môže zvýšiť prenos.
  • Hlavný účel: identifikácia používateľa (relácie cookies), zapamätanie preferencií, sledovanie aktivít používateľa.
  • Dostupné ako na strane klienta (JavaScript), tak na strane servera.
  • Môžu byť obmedzené podľa domény a cesty.
  • Považujú sa za menej bezpečné pre ukladanie citlivých údajov kvôli automatickému odoslaniu na server.

localStorage:

  • Dáta sú uložené lokálne v prehliadači používateľa.
  • Používa sa na trvalé ukladanie dát, ktoré nie je potrebné odosielať na server pri každom požiadavku.
  • Má jednoduché JavaScript API.
  • Dáta sú vo formáte kľúč-hodnota.
  • Nie je dostupné z iných originov.
// Nastavenie hodnoty
localStorage.setItem('username', 'john.doe');

// Získanie hodnoty
let username = localStorage.getItem('username');

// Odstránenie hodnoty
localStorage.removeItem('username');

// Vymazanie celého localStorage
localStorage.clear();

sessionStorage:

  • Podobné ako localStorage, ale dáta sa ukladajú iba do zatvorenia aktuálnej záložky alebo okna prehliadača.
  • Ideálne pre dočasné uloženie dát súvisiacich s aktuálnou reláciou používateľa (napríklad údaje formulárov, košík internetového obchodu).
  • Má tiež jednoduché JavaScript API, podobné localStorage.
  • Dáta sú dostupné iba na aktuálnom originu.
// Nastavenie hodnoty
sessionStorage.setItem('sessionId', 'abc123');

// Získanie hodnoty
let sessionId = sessionStorage.getItem('sessionId');

// Odstránenie hodnoty
sessionStorage.removeItem('sessionId');

// Vymazanie celého sessionStorage
sessionStorage.clear();