I browser web interagiscono con i siti web seguendo il protocollo HTTP. Si tratta di un insieme di regole standardizzate per la comunicazione:
- Quando visiti una pagina web, il browser invia richieste HTTP per le risorse presenti nella pagina, ad esempio HTML, CSS, JavaScript e immagini.
- Quando un server HTTP (un server web che ospita un sito web) riceve una richiesta HTTP valida da un browser, il server risponde al browser con una risposta HTTP.
- Le richieste e le risposte possono includere informazioni aggiuntive note come intestazioni HTTP.
Ad esempio, prendi in considerazione il sito cats.example.
Richiesta
L'accesso alla pagina cats.example
avvia una catena di richieste a vari
domini. Sono incluse una richiesta di un'immagine ospitata su cats.example
stessa, una richiesta di uno script di analisi da analytics.example
e altre richieste di risorse aggiuntive da altri domini.
Le richieste HTTP possono essere integrate con le intestazioni delle richieste HTTP per fornire informazioni supplementari dal browser al server web. Ad esempio, vengono spesso incluse intestazioni come le seguenti:
Accept-Language: en-US
Questa intestazione indica la lingua preferita dall'utente, in questo caso l'inglese (Stati Uniti).User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36
Questa intestazione fornisce dettagli sul browser e sul sistema operativo dell'utente, in questo caso "Mozilla/5.0" (famiglia di browser), "Macintosh" (sistema operativo) e "Chrome/127.0.0.0" (versione del browser).
Risposta
Quando un server web riceve una richiesta valida da un browser, invia al browser una risposta che fornisce la risorsa richiesta ("payload"): HTML, CSS, JavaScript, un file immagine, un video o altri dati. Così come ogni richiesta del browser può includere intestazioni di richiesta, ogni risposta del server può includere intestazioni di risposta. Queste intestazioni di risposta vengono inviate insieme al payload.
Un'intestazione Set-Cookie
inclusa in una risposta indica al browser di memorizzare del testo: un nome e un valore. Questo è noto come cookie HTTP. In risposta alla richiesta di cats.example/images/cat.jpg
, il server cats.example
include l'intestazione Set-Cookie:cat=tabby
. Questo indica al browser di memorizzare un cookie denominato gatto con il valore tabby.
Questo cookie verrà incluso nelle richieste successive a cats.example,
fino a quando non scade o viene rimosso.
In questo modo, il server può conservare le informazioni sull'utente su più pagine web o sessioni: ad esempio, che all'utente è stata mostrata un'immagine di un gatto tigrato.
Header | Azione | Esempio | Effetto | |
---|---|---|---|---|
Risposta HTTP Dal server al browser |
Set‑Cookie
|
Il server web chiede al browser di memorizzare un cookie. | Set‑Cookie:cat=tabby |
Il cookie viene memorizzato dal browser e fornito nelle richieste successive al server che lo ha impostato. |
Richiesta HTTP Browser al server |
Cookie |
Il browser fornisce un cookie. | Cookie:cat=tabby |
Il cookie viene reso disponibile al server di destinazione della richiesta. |
Demo
- 1pc.glitch.me: demo del cookie proprietario
- 3pc.glitch.me: demo dei cookie di terze parti
Strumenti
- Visualizzare, aggiungere, modificare ed eliminare i cookie in Chrome DevTools
- Privacy Sandbox Analysis Tool