Објасните разлику између 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();