Il web è progettato in modo che ogni richiesta da un browser web a un sito web sia distinta. 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 dell'ultima sessione. In questo modo, il web diventa più semplice ed efficiente, poiché non è necessario un meccanismo per monitorare richieste e risposte.
Tuttavia, la natura smemorata del web presenta anche un problema. Ad esempio, come può funzionare un carrello degli acquisti se il sito web che stai visitando non riesce a ricordare cosa hai appena inserito?
I cookie sono stati inventati per risolvere questo problema.
I cookie forniscono memoria ai siti web
Quando visiti una pagina su un sito web, il browser web invia richieste al server del sito web per le risorse incluse nella pagina, ad esempio HTML, CSS, JavaScript o immagini.
I browser web e i siti web interagiscono seguendo il protocollo HTTP. Si tratta di un insieme di regole standardizzate 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 del testo: un nome e un valore. Questo è noto come
cookie. Ad esempio, l'intestazione di risposta Set-Cookie:cat=tabby
indica al browser di memorizzare un cookie con il nome "gatto" e il valore "tabby".
Una volta impostato il cookie, le richieste successive del 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: procedura dettagliata
Immagina di visitare il sito web cats.example
. Il sito vuole mostrarti un'immagine aleatoria di un gatto e tenere traccia del gatto che ti è stato mostrato.
I passaggi riportati di seguito spiegano come eseguire questa operazione con i cookie.
1. Il browser richiede un file
Visiti la home page del sito web cats.example
.
Il browser richiede i file presenti nella pagina, incluso cat.jpg
di cats.example
.
2. Il server del sito web risponde
Il server all'indirizzo cats.example
risponde con il file immagine cat.jpg
.
Nella 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
.
Viene memorizzato un cookie: nome cat
, valore tabby
.
4. Il browser effettua richieste aggiuntive
D'ora in poi, il browser includerà l'intestazione Cookie:cat=tabby
con le richieste a cats.example
.
Quando il server web cats.example
riceve una richiesta, può elaborare il cookie
e fare ciò che vuole con quel valore, ad esempio assicurarsi di non inviarti nuovamente un'immagine dello stesso gatto tigrato.
Ecco l'intera procedura relativa ai cookie:
- Il browser invia una richiesta di un file a un sito web.
- Il server del sito web può includere un'intestazione come
Set-Cookie:cat=tabby
insieme al file inviato in risposta alla richiesta. - Quando il browser riceve la risposta, memorizza il cookie.
- Con 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 per la società di software Netscape, che in seguito ha creato il browser web più popolare della metà degli anni '90.
Nel frattempo, una società di telecomunicazioni, MCI, stava cercando di creare una funzionalità del carrello per uno dei primi negozi online al mondo. MCI si è messa in contatto con
Montulli per spiegare il problema. Montulli ha risposto aggiungendo una funzionalità all'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 di simile a cart-id=123
. Lo chiamò "cookie", poiché a quei tempi i programmatori usavano la parola "magic cookie" per indicare un piccolo frammento di informazioni aggiuntive incluso nella comunicazione dei dati.
Lou ha completato il 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 attività fraudolente e altri servizi web fondamentali. I cookie sono una tecnologia molto 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, in modo da "ricordare" qualcosa in più richieste. I cookie hanno diversi scopi:
- Gestione delle sessioni
Consente a un sito web di riconoscere un utente, ad esempio per mantenere attivo lo stato di accesso su più pagine. - Personalizzazione
Memorizza le preferenze dell'utente, ad esempio lingua, tema o elementi visualizzati di recente, per personalizzare l'esperienza sul sito web. - Monitoraggio
In passato, i cookie sono stati utilizzati per monitorare il comportamento degli utenti su siti web, per la pubblicità mirata e altri casi d'uso.
I cookie vengono invece utilizzati in genere per memorizzare e comunicare identificatori che vengono elaborati dal server. Ad esempio, un'intestazione con una richiesta a un servizio di analisi web potrebbe includere un cookie come questo:
Cookie: _analytics=ANALYTICS1.2.34567890.123456789
Il server di analisi che riceve la richiesta può elaborare l'identificatore, insieme ad altre informazioni sulla pagina.