Sobes.tech
Junior

Објасните разлику између cookies, sessionStorage и localStorage.

sobes.tech АИ

Одговор од АИ

Cookies čuvaju male količine tekstualnih informacija (do 4KB) na strani klijenta, šalju se sa svakim HTTP zahtevom ka domenu koji ih je postavio. Mogu imati rok trajanja. Koriste se za autorizaciju, praćenje korisnika, čuvanje korisničkih preferencija.

localStorage čuva podatke bez roka trajanja (dok ih korisnik ne obriše ili ne zatvori pretraživač) na strani klijenta (do 5-10MB u zavisnosti od pretraživača). Podaci su dostupni između sesija pretraživača, ali samo za skripte istog porekla (domen, protokol, port). Ne šalju se automatski sa HTTP zahtevima. Koriste se za dugotrajno čuvanje podataka, čuvanje podešavanja aplikacije.

sessionStorage čuva podatke tokom jedne sesije pretraživača (dok su kartica ili prozor otvoreni). Podaci se brišu pri zatvaranju kartice ili prozora. Veličina skladišta je slična localStorage (do 5-10MB). Podaci su dostupni samo za skripte istog porekla. Ne šalju se automatski sa HTTP zahtevima. Koriste se za privremeno čuvanje podataka, specifičnih za trenutnu sesiju.

Karakteristike Cookies localStorage sessionStorage
Rok trajanja Rok trajanja ili zatvaranje pretraživača Dok ih korisnik ne obriše ili ne ukloni Dok je kartica ili prozor otvoren
Veličina podataka Do 4KB Do 5-10MB Do 5-10MB
Dostupnost Šalju se sa HTTP zahtevima ka domenu Samo putem JavaScript-a istog porekla Samo putem JavaScript-a istog porekla
Dostupnost između kartica Da Da Ne (za različite kartice)
Svrha Autentikacija, praćenje, preferencije Dugotrajno čuvanje, podešavanja Privremeno čuvanje u okviru sesije

Primer korišćenja localStorage:

// Sačuvati podatke
localStorage.setItem('userName', 'Alice');

// Dobiti podatke
const userName = localStorage.getItem('userName');
console.log(userName); // Izlaz: Alice

// Ukloniti podatke
// localStorage.removeItem('userName');

// Očistiti ceo skladišni prostor
// localStorage.clear();

Primer korišćenja sessionStorage:

// Sačuvati podatke
sessionStorage.setItem('orderId', '12345');

// Dobiti podatke
const orderId = sessionStorage.getItem('orderId');
console.log(orderId); // Izlaz: 12345

// Ukloniti podatke
// sessionStorage.removeItem('orderId');

// Očistiti ceo skladišni prostor
// sessionStorage.clear();