Un cookie HTTP è un piccolo pezzo di informazione testuale che il server invia al client insieme ad un data di scadenza, il client lo mantiene per il tempo indicato e che lo re-invia con le successive richieste fatte allo stesso server. Il server può usarli ad esempio per capire se due richieste vengono dallo stesso browser (per ovviare così all'assenza di stato nelle comunicazioni HTTP) e quindi per implementare meccanismi tipo login o carrelli della spesa.
Creazione del cookie
Questo è un compito che spetta all'applicazione lato server
(uno script PHP ad esempio) che deve impostare almeno un header: Set-Cookie
.
Il valore dell'header è una coppia nome=valore
, ad esempio potremmo avere
un header come quello qui sotto:
Set-Cookie: informazione_utile=cioccolato Set-Cookie: altra_info=lunedì
Restituzione dei cookie
Poniamo che il server www.forno.it invii un cookie al nostro browser, ogni volta che
il browser farà una successiva richiesta (ad esempio un GET per chiedere una pagina HTML)
al server www.forno.it re-invierà lo stesso cookie utilizzando
l'header Cookie
nella richiesta.
Continuando con l'esempio precedente il browser imposterebbe questo header:
Cookie: informazione_utile=cioccolato; altra_info=lunedì
Validità dei cookie
Se non diversamente specificato il browser cancellerà il cookie quando verrà chiuso (sarebbe a dire dopo la sessione di lavoro), è possibile però specificare una scadenza per il cookie in due modi diversi
- Expires
- imposta una data di scadenza
- Max-age
- imposta il numero di secondi di validità
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2021 07:28:00 GMT; Set-Cookie: cookie_sette_giorni=abcdefg; Max-Age=604800
In questo caso il browser re-invierebbe al server nelle richieste successive questo header:
Cookie: cookie_sessione=valore_sessione; cookie_sette_giorni=abcdefg