- I cookie a livello di HTTP - |
|||
COSA SERVE PER QUESTO TUTORIAL | |||
Download | Chiedi sul FORUM | Glossario | cognizioni generiche sul funzionamento del web | ||
Comprendere il funzionamento dei cookie a livello di HTTP | |||
I COOKIE: COME FUNZIONANO A LIVELLO DI HTTP I parametri HTTP Cookie e Set-Cookie Tutti sanno cos'è un cookie: un piccola quantità di dati che i server web possono memorizzare sui client (i browser) e a cui è possibile accedere ad ogni pagina. Essi sono spesso usati per salvare login o per tenere traccia di sessioni. Ma come funzionano i cookie a livello HTTP? Realizziamo innanzitutto una semplice pagina che imposti un cookie chiamato biscotto sul valore cacao. In ASP .Net: <% Response.Cookies("biscotto").Value = "cacao" %> Cookie impostato! Mentre in PHP: <?php setcookie("biscotto", "cacao"); ?> Cookie impostato! Salviamo il file in una cartella o pubblichiamolo sul server come scrivi_cookie.aspx (o scrivi_cookie.php) e quindi, sempre con telnet, proviamo ad inoltrare la seguente richiesta: GET /cartella/scrivi_cookie.aspx HTTP/1.1 Host: localhost
Nota: ovviamente al posto di cartella bisogna specificare il percorso
del file a partire dalla root del sito; se si usa PHP, sostituire cookie.aspx con cookie.aspx; se se il server a cui ci si connette non è
localhost specificare il nome del server (ad esempio
www.arcadiaclub.com) come parametro Host. HTTP/1.1 200 OK Set-Cookie: biscotto=cacao; path=/ Content-Length: 19 Cookie impostato! A parte la prevedibile scritta di responso e il parametro Content-Length che già conosciamo, abbiamo un nuovo elemento: Set-Cookie. La risposta è abbastanza auto-esplicativa: il server sta istruendo il nostro client di memorizzare il cookie biscotto con valore cacao. path, indica la cartella a cui il cookie è relativo, inoltre in altre occasioni potrebbero esservi ulteriori informazioni quali la data di scadenza del cookie e così via, ma ciò non è oggetto di questo articolo. Ora il browser memorizzerà il cookie o meno a secondo di impostazioni o restrizioni, e se deciderà di farlo, in seguito, ad ogni nuova richiesta eseguita su quel server verso la cartella specificata in path o in una sua sottocartella invierà il cookie come segue: GET /altraPagina.htm HTTP/1.1 Host: localhost Cookie: biscotto=cacao; cookiePrecedente=mandorle Il client tramite il parametro HTTP Cookie comunica al server tutti i cookie in precedenza memorizzati per questo percorso/server. Vediamo una pagina ASP .Net per mostrare il cookie in questione: Cookie biscotto: <% =Request.Cookies("biscotto").Value %> In PHP: Cookie biscotto: <?php echo $_COOKIE["biscotto"]; ?>
|
|||
<< INDIETRO | by VeNoM00 |