Sobes.tech
Junior

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 ~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