Junior
Spiega la differenza tra cookies, sessionStorage e localStorage.
sobes.tech AI
Risposta dell'AI
| Meccanismo | Dimensione (approssimativa) | Durata di vita | Accesso | Trasferito al server | Uso |
|---|---|---|---|---|---|
| Cookies | 4 KB | Data di scadenza impostata dal server o dal browser | Documento corrente e sottodomini (a seconda delle impostazioni) | In ogni richiesta HTTP | Autenticazione, tracciamento, impostazioni utente personalizzate |
| localStorage | 5-10 MB | Illimitato (finché l'utente non cancella) | Solo l'origine corrente (protocollo, dominio, porta) | No | Memorizzazione delle preferenze utente, dati di stato dell'applicazione |
| sessionStorage | 5-10 MB | Fino alla chiusura della scheda/finestra del browser | Solo l'origine corrente (protoccolo, dominio, porta) | No | Memorizzazione temporanea dei dati della sessione utente |
Cookies:
- Inviati con ogni richiesta HTTP al server, il che può aumentare il traffico.
- Scopo principale: identificazione dell'utente (cookie di sessione), memorizzazione delle preferenze, tracciamento delle azioni dell'utente.
- Disponibili sia lato client (JavaScript) che lato server.
- Possono essere limitati per dominio e percorso.
- Considerati meno sicuri per la memorizzazione di dati sensibili a causa dell'invio automatico al server.
localStorage:
- I dati sono memorizzati localmente nel browser dell'utente.
- Utilizzato per la memorizzazione permanente di dati che non devono essere inviati al server ad ogni richiesta.
- Ha un'API JavaScript semplice.
- I dati sono memorizzati come coppie chiave-valore.
- Non accessibile da altri origin.
// Imposta valore
localStorage.setItem('username', 'john.doe');
// Ottieni valore
let username = localStorage.getItem('username');
// Rimuovi valore
localStorage.removeItem('username');
// Pulisci tutto localStorage
localStorage.clear();
sessionStorage:
- Simile a localStorage, ma i dati vengono memorizzati solo fino alla chiusura della scheda o della finestra del browser.
- Ideale per la memorizzazione temporanea di dati legati alla sessione corrente dell'utente (ad esempio, dati di moduli, carrello).
- Dispone anche di un'API JavaScript semplice, simile a localStorage.
- I dati sono disponibili solo nell'origine corrente.
// Imposta valore
sessionStorage.setItem('sessionId', 'abc123');
// Ottieni valore
let sessionId = sessionStorage.getItem('sessionId');
// Rimuovi valore
sessionStorage.removeItem('sessionId');
// Pulisci tutto sessionStorage
sessionStorage.clear();