cookies

archiviare informazioni nel client

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