Magyarázza el a különbséget a cookie-k, sessionStorage és localStorage között.
sobes.tech MI
Válasz az MI-től
A cookie-k, sessionStorage és localStorage webtárolási mechanizmusok, amelyek céljukban, élettartamukban és tárolt adatok mennyiségében különböznek.
-
Cookie-k: Kis adatrészek, amelyeket a webszerver küld és a felhasználó böngészője tárolja. Minden későbbi kérésnél ugyanahhoz a szerverhez küldik. Hitelesítésre, felhasználói preferenciák tárolására, kosár állapotának követésére használják.
- Élettartam: Létrehozáskor állítják be (lehet munkamenet vagy meghatározott lejárati idő).
- Mennyiség: Korlátozott, általában néhány kilobájt (körülbelül 4 KB).
-
sessionStorage: Csak egy böngészési munkamenet idejére tárol adatokat (nyitott lap vagy ablak). Az adatok a lap vagy az ablak bezárásakor törlődnek.
- Élettartam: A lap vagy az ablak bezárásáig.
- Mennyiség: Jelentősen nagyobb, mint a cookie-k (általában néhány megabájt).
-
localStorage: Adatok tárolása lejárati dátum nélkül, amíg azokat a felhasználó vagy szkript nem törli kifejezetten. Minden ugyanazon domainhez tartozó lapban és ablakban elérhető.
- Élettartam: Állandó (a kifejezett törlésig).
- Mennyiség: Jelentősen nagyobb, mint a cookie-k (általában néhány megabájt).
Íme egy rövid összehasonlítás:
| Mechanizmus | Élettartam | Elérhetőség | Küldés a szervernek | Mennyiség (tipikus) | Cél |
|---|---|---|---|---|---|
| Cookie-k | Munkamenet vagy lejárati idő | HTTP fejlécen keresztül | Igen | ~4 KB | Hitelesítés, követés, preferenciák |
| sessionStorage | Lap vagy ablak bezárásáig | JS API-n keresztül | Nem | ~5-10 MB | Ideiglenes munkamenet adatok tárolása |
| localStorage | Állandó (a törlésig) | JS API-n keresztül | Nem | ~5-10 MB | Hosszú távú adat tárolás |
JavaScript API példák:
// Cookie-k (elérés document.cookie-n keresztül, manuális elemzés és serializálás szükséges)
document.cookie = "username=John Doe; expires=Thu, 18 Dec 2023 12:00:00 UTC; path=/";
// sessionStorage
sessionStorage.setItem('id', '123');
let userId = sessionStorage.getItem('id');
sessionStorage.removeItem('id');
// localStorage
localStorage.setItem('theme', 'dark');
let userTheme = localStorage.getItem('theme');
localStorage.removeItem('theme');
localStorage.clear(); // Törli az összes adatot a localStorage-ben