Spiega la differenza tra cookies, sessionStorage e localStorage.
sobes.tech AI
Risposta dell'AI
Cookies, sessionStorage e localStorage sono meccanismi di archiviazione web che differiscono per scopo, durata e volume di dati memorizzati.
-
Cookies: Piccoli frammenti di dati inviati dal server web e memorizzati sul computer dell'utente dal browser web. Vengono inviati con ogni richiesta successiva allo stesso server. Utilizzati per autenticazione, memorizzazione delle preferenze dell'utente, tracciamento dello stato del carrello.
- Durata: Stabilita al momento della creazione (può essere di sessione o con una data di scadenza specifica).
- Volume: Limitato, di solito alcuni kilobyte (circa 4 KB).
-
sessionStorage: Memorizza i dati solo per una sessione del browser (scheda o finestra aperta). I dati vengono eliminati alla chiusura della scheda o finestra.
- Durata: Fino alla chiusura della scheda o finestra del browser.
- Volume: Significativamente maggiore rispetto ai cookies (di solito alcuni megabyte).
-
localStorage: Memorizza i dati senza scadenza, fino a che non vengono eliminati esplicitamente dall'utente o da uno script. Disponibile in tutte le schede e finestre dello stesso dominio.
- Durata: Permanente (fino a eliminazione esplicita).
- Volume: Significativamente maggiore rispetto ai cookies (di solito alcuni megabyte).
Ecco una breve comparazione:
| Meccanismo | Durata | Disponibilità | Inviato al server | Volume (tipico) | Scopo |
|---|---|---|---|---|---|
| Cookies | Di sessione o con scadenza | Via intestazioni HTTP | Sì | ~4 KB | Autenticazione, tracciamento, preferenze |
| sessionStorage | Fino alla chiusura della scheda/finestre | Via API JS | No | ~5-10 MB | Memorizzazione temporanea dei dati di sessione |
| localStorage | Permanente (fino a eliminazione) | Via API JS | No | ~5-10 MB | Memorizzazione a lungo termine dei dati |
Esempi di utilizzo con API JavaScript:
// Cookies (accesso tramite document.cookie, richiede parsing e serializzazione manuale)
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(); // Pulisce tutti i dati in localStorage