🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Web Storage in JavaScript: Guida Completa a LocalStorage e SessionStorage

Codegrind Team•Aug 23 2024

Il Web Storage in JavaScript è una potente API che permette di memorizzare dati direttamente nel browser dell’utente. Fornisce due principali meccanismi di storage: LocalStorage e SessionStorage. Questi strumenti sono particolarmente utili per salvare dati persistenti o temporanei lato client, come le preferenze utente, i dati di sessione, e molto altro. In questa guida esploreremo le differenze tra LocalStorage e SessionStorage, come utilizzarli, e le best practices per gestire efficacemente i dati lato client.

Cos’è il Web Storage?

Il Web Storage è una tecnologia che consente alle applicazioni web di memorizzare dati nel browser dell’utente in modo più sicuro e strutturato rispetto ai cookie. I due principali tipi di Web Storage sono:

  • LocalStorage: Memorizza i dati senza data di scadenza, persistenti tra le sessioni del browser.
  • SessionStorage: Memorizza i dati per la durata della sessione del browser, vengono eliminati quando la scheda o la finestra del browser viene chiusa.

Entrambi i tipi di storage sono basati su una semplice API chiave-valore e sono specifici per il dominio e il protocollo.

LocalStorage: Dati Persistenti

LocalStorage è un meccanismo che permette di memorizzare dati nel browser dell’utente senza una data di scadenza. I dati memorizzati in LocalStorage rimangono disponibili anche dopo che l’utente ha chiuso e riaperto il browser.

Esempio di Utilizzo di LocalStorage

Memorizzazione di Dati

localStorage.setItem("utente", "Mario");
localStorage.setItem("tema", "scuro");

Recupero di Dati

let utente = localStorage.getItem("utente");
let tema = localStorage.getItem("tema");
console.log(utente); // Output: Mario
console.log(tema); // Output: scuro

Rimozione di Dati

localStorage.removeItem("tema"); // Rimuove la chiave 'tema' e il suo valore associato

Cancellazione Completa

localStorage.clear(); // Cancella tutti i dati memorizzati in LocalStorage

Quando Usare LocalStorage?

  • Persistenza a Lungo Termine: Per dati che devono persistere anche dopo che l’utente ha chiuso e riaperto il browser.
  • Preferenze Utente: Memorizzare impostazioni come il tema dell’applicazione, la lingua, o altre preferenze dell’utente.

SessionStorage: Dati Temporanei

SessionStorage è simile a LocalStorage, ma con una durata più breve. I dati memorizzati in SessionStorage esistono solo per la durata della sessione di navigazione e vengono eliminati quando la scheda o la finestra del browser viene chiusa.

Esempio di Utilizzo di SessionStorage

Memorizzazione di Dati

sessionStorage.setItem("sessione", "attiva");
sessionStorage.setItem("token", "abc123");

Recupero di Dati

let sessione = sessionStorage.getItem("sessione");
let token = sessionStorage.getItem("token");
console.log(sessione); // Output: attiva
console.log(token); // Output: abc123

Rimozione di Dati

sessionStorage.removeItem("token"); // Rimuove la chiave 'token' e il suo valore associato

Cancellazione Completa

sessionStorage.clear(); // Cancella tutti i dati memorizzati in SessionStorage

Quando Usare SessionStorage?

  • Dati Temporanei: Per informazioni che devono esistere solo durante la sessione corrente dell’utente, come token di autenticazione temporanei o dati di sessione.
  • Sicurezza Migliorata: Per evitare che i dati persistano oltre la durata della sessione di navigazione, riducendo il rischio di esfiltrazione o accesso non autorizzato.

Differenze Chiave tra LocalStorage e SessionStorage

Caratteristica LocalStorage SessionStorage
Durata Persistente, fino a quando non viene rimosso manualmente Temporanea, fino alla chiusura della scheda o finestra
Ambito Globale per tutto il sito web Limitato alla sessione della scheda/finestra
Capacità di Memorizzazione Tipicamente circa 5-10MB, varia tra i browser Tipicamente circa 5-10MB, varia tra i browser
Persistenza Tra le sessioni del browser Solo durante la sessione corrente
Accessibilità Solo accessibile dal dominio che ha creato i dati Solo accessibile dalla sessione corrente e dal dominio che ha creato i dati

Sicurezza e Limiti del Web Storage

1. Capacità Limitata

Il Web Storage ha una capacità limitata, generalmente di circa 5-10 MB per dominio, variabile a seconda del browser. Questo è sufficiente per la maggior parte delle applicazioni, ma è importante essere consapevoli di questa limitazione quando si gestiscono grandi quantità di dati.

2. Non Adatto per Dati Sensibili

Sebbene LocalStorage e SessionStorage siano accessibili solo dal dominio che ha creato i dati, non sono sicuri per memorizzare informazioni altamente sensibili come password, numeri di carte di credito o token di accesso a lungo termine, poiché i dati memorizzati non sono criptati.

3. Accesso Sincrono

Il Web Storage è sincrono, il che significa che le operazioni di lettura e scrittura bloccano il thread principale del browser. Sebbene questo non sia un problema per piccoli volumi di dati, potrebbe diventare un problema di performance se si tenta di memorizzare grandi quantità di informazioni.

Best Practices per l’Uso del Web Storage

  • Memorizza Solo Dati Necessari: Utilizza LocalStorage e SessionStorage solo per memorizzare dati essenziali che non richiedono una sicurezza elevata.
  • Gestisci lo Spazio di Archiviazione: Controlla regolarmente la dimensione dei dati memorizzati e pulisci i dati non necessari per evitare di superare i limiti di capacità.
  • Evita di Memorizzare Dati Sensibili: Non memorizzare dati sensibili nel Web Storage; utilizza tecniche più sicure come i cookie sicuri con HttpOnly e Secure flag.
  • Gestisci l’Accesso ai Dati: Assicurati che l’accesso ai dati nel Web Storage sia gestito in modo corretto per prevenire accessi non autorizzati o modifiche non desiderate.

Conclusione

Il Web Storage in JavaScript offre un modo semplice e potente per memorizzare dati lato client, con due opzioni principali: LocalStorage per dati persistenti e SessionStorage per dati temporanei. Comprendere le differenze tra queste due opzioni e seguire le best practices per l’uso del Web Storage ti aiuterà a creare applicazioni web più efficienti e sicure. Sebbene il Web Storage sia estremamente utile, è importante considerare i suoi limiti e utilizzarlo in modo appropriato per garantire la sicurezza e la performance delle tue applicazioni.