<%@ Page Language="VB" ResponseEncoding="iso-8859-1" Inherits="AACPage" %> <%@ import Namespace="System.Data" %> <%@ import Namespace="System.Data.Oledb" %> <%@ import Namespace="System.Data.ODBC" %> <%@ Register TagPrefix="aac" TagName="header" Src="~/header.ascx" %> <%@ Register TagPrefix="aac" TagName="footer" Src="~/footer.ascx" %> <%@ Register TagPrefix="aac" TagName="telaioHeader" Src="~/service/include/telaio_header.ascx" %> <%@ Register TagPrefix="aac" TagName="telaioFooter" Src="~/service/include/telaio_footer.ascx" %> <%@ Register TagPrefix="aac" TagName="autoreFile" Src="~/service/include/autore_file.ascx" %> <%@ Register TagPrefix="aac" TagName="aggiornamenti" Src="~/service/include/aggiornamenti.ascx" %> <%@ Register TagPrefix="aac" TagName="ultimiPost" Src="~/forum/inc_ultimi_post.ascx" %> <%@ Register TagPrefix="aac" TagName="ultimiPost3" Src="~/forum/inc_ultimi_post_nuovo.ascx" %> <%@ Register TagPrefix="aac" TagName="aspect" Src="~/service/include/aspect.ascx" %> <%@ Register TagPrefix="aac" TagName="adsenseGenerator" Src="~/service/include/adsense_generator.ascx" %> <% 'Il controllo per il paging correntemente è registrato qua e là, ma andrebbe 'eliminato da tutte le parti e messo qui '<'%@ Register TagPrefix="aac" TagName="paging" Src="~/service/include/paging.ascx" %'> %> ArcadiA Club - HTTP | Come funzionano i cookie a livello HTTP <% sez_id = 18 immm = "programmazione" categoria = 1 #CONST aspect_asp = 0 forum_id_asp = "16" sc_asp = 1 %> <%-- --%>
 
- I cookie a livello di HTTP -
 
COSA SERVE PER QUESTO TUTORIAL
 DownloadChiedi 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.
A questo punto il server eseguirà la pagina e incontrerà la richiesta di impostare il cookie biscotto su cacao; vediamo dunque la risposta del server:


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