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
.
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
.
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
.
4. Il browser effettua richieste aggiuntive
D'ora in poi, il browser includerà l'intestazione Cookie: cat=tabby
nelle richieste a cats.example
.
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:
- Il browser invia una richiesta di un file al server di un sito web.
- Il server può includere un'intestazione come
Set-Cookie: cat=tabby
insieme al file che invia in risposta alla richiesta. - Quando il browser riceve la risposta, memorizza il cookie.
- A ogni richiesta successiva, il browser invia il cookie al server in un'intestazione
Cookie: cat=tabby
.
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ù
- Attributi dei cookie
- Che cosa sono i cookie di terze parti?
- Richiesta e risposta HTTP
- Strumenti per i cookie
- Demo dei cookie
- Utilizzo dei cookie HTTP
- The Magic Cookie: How Lou Montulli cured the Web's amnesia
- Cookie HTTP (la specifica originale)
- Cookie HTTP o come non progettare protocolli