Che cosa sono i cookie?

Il web è progettato in modo che ogni richiesta da un browser web a un sito web sia separata. Per sua natura, il web non ha "memoria". Ogni volta che apri una pagina web, il sito web che stai visitando non può ricordare le informazioni della tua ultima sessione. Ciò contribuisce a rendere il web efficiente, poiché non è necessario un meccanismo per monitorare richieste e risposte.

Ma la natura smemorata del web presenta anche un problema. Ad esempio, come può funzionare un carrello se il sito web su cui ti trovi non ricorda cosa hai appena inserito?

I cookie sono stati inventati per risolvere questo problema.

I cookie danno memoria ai siti web

Quando visiti una pagina di un sito web, il browser web invia richieste al server del sito web per le risorse incluse nella pagina, come HTML, CSS, JavaScript o immagini.

I browser web e i siti web interagiscono seguendo il protocollo HTTP. Si tratta di un insieme standardizzato di regole per la comunicazione.

In risposta a una richiesta HTTP per una risorsa, il server del sito web può includere informazioni aggiuntive chiamate intestazioni insieme alla risorsa stessa. Un'intestazione Set-Cookie inclusa in una risposta HTTP indica al browser di memorizzare un testo: un nome e un valore. Questo elemento è noto come cookie. Ad esempio, l'intestazione della risposta Set-Cookie: cat=tabby indica al browser di memorizzare un cookie con il nome "cat" e il valore "tabby".

Una volta impostato il cookie, le richieste successive dal browser al sito web includeranno l'intestazione Cookie: cat=tabby. Il server del sito web può accedere al cookie dall'intestazione della richiesta e utilizzare il valore.

Come funzionano i cookie: passo dopo passo

Immagina di visitare il sito web cats.example. Il sito vuole mostrarti un'immagine casuale di un gatto e tenere traccia del gatto che ti è stato mostrato.

I passaggi seguenti spiegano come farlo con i cookie.

1. Il browser richiede un file

Visiti la home page del sito web cats.example.

Una volta elaborato l'HTML della home page, il browser richiede i file sulla pagina, incluso cat.jpg da cats.example.

Una richiesta HTTP a https://cats.example/cat.jpg

2. Il server del sito web risponde

Il server all'indirizzo cats.example risponde con il file immagine cat.jpg.

Con la risposta, il server include un'intestazione: Set-Cookie: cat=tabby.

Una risposta HTTP da https://cats.example/cat.jpg, con un'intestazione Set-Cookie:
cat=tabby

3. Il browser riceve la risposta

Il browser riceve il file immagine ed elabora l'intestazione Set-Cookie: cat=tabby inclusa.

Un cookie è memorizzato: nome cat, valore tabby.

Il cookie cat=tabby in un browser web su un laptop.

4. Il browser effettua richieste aggiuntive

D'ora in poi, il browser includerà l'intestazione Cookie: cat=tabby nelle richieste a cats.example.

Una richiesta HTTP a https://cats.example/cat.jpg, con un'intestazione Cookie: cat=tabby

Quando il server web cats.example riceve una richiesta, può elaborare il cookie e fare quello che vuole con quel valore, ad esempio assicurarsi di non inviarti di nuovo un'immagine dello stesso gatto tigrato.

Ecco l'intera procedura relativa ai cookie:

  1. Il browser invia una richiesta di un file al server di un sito web.
  2. Il server può includere un'intestazione come Set-Cookie: cat=tabby insieme al file che invia in risposta alla richiesta.
  3. Quando il browser riceve la risposta, memorizza il cookie.
  4. A ogni richiesta successiva, il browser invia il cookie al server in un'intestazione Cookie: cat=tabby.


Diagramma di sequenza che mostra le richieste e le risposte tra un browser web,
cats.example e cats.example, che mostra come vengono impostati e
inviati i cookie.

Accedere ai cookie con JavaScript

L'esempio precedente utilizza l'intestazione di risposta Set-Cookie per impostare un cookie.

I cookie possono essere creati anche con JavaScript utilizzando il metodo document.cookie.

Prova la demo: javascript-cookie.glitch.me.

Scopri di più: Documento: proprietà cookie.

Perché abbiamo bisogno dei cookie?

Nel 1994, l'ingegnere Lou Montulli lavorava presso la società di software Netscape, che in seguito avrebbe creato il browser web più popolare della metà degli anni '90. Nel frattempo, una società di telecomunicazioni, MCI, stava cercando di creare un carrello per uno dei primi negozi online al mondo. MCI ha contattato Montulli per spiegare il problema. Montulli ha risposto aggiungendo una funzionalità a HTTP che consentiva a un sito di memorizzare una piccola quantità di testo nel browser web di un utente, un nome e un valore: qualcosa del tipo cart-id=123. Lo chiamò "cookie", perché a quei tempi i programmatori usavano l'espressione "magic cookie" per indicare una piccola parte di informazioni aggiuntive incluse nella comunicazione dei dati.

Montulli ha completato il suo lavoro sui cookie HTTP in meno di una settimana. Non sapeva che i cookie sarebbero stati fondamentali per la pubblicità, l'accesso, i pagamenti, il rilevamento delle frodi e altre funzionalità critiche della piattaforma web. I cookie sono una tecnologia apparentemente semplice che ha avuto effetti collaterali di vasta portata.

Utilizzi dei cookie

I cookie consentono al browser di memorizzare una piccola quantità di informazioni sull'utente, per "ricordare" qualcosa in più richieste. I cookie hanno molteplici usi:

  • Gestione delle sessioni
    Consente a un sito web di riconoscere un utente, ad esempio per mantenere lo stato di accesso su pagine diverse.
  • Personalizzazione
    Memorizza le preferenze dell'utente, come lingua, tema o elementi visualizzati di recente, per personalizzare l'esperienza del sito web.
  • Monitoraggio
    Storicamente, i cookie sono stati utilizzati per monitorare il comportamento degli utenti sui siti web, per la pubblicità mirata e altri casi d'uso.

I cookie vengono utilizzati principalmente per gli identificatori, anziché per memorizzare direttamente le informazioni.

Ad esempio, un cookie per il carrello di un negozio di animali online non elenca i prodotti, ma fornisce un ID account che consente al negozio di animali di cercare cosa c'è nel tuo carrello, nel suo spazio di archiviazione dei dati lato server.

Una richiesta al server del negozio di animali potrebbe includere un'intestazione cookie come questa:

Cookie: _cart=CART1.2.34567890.123456789

Il server può quindi cercare l'account _cart nel proprio datastore e includere altre informazioni sulla richiesta.

Scopri di più