Non accettare i biscottini dagli sconosciuti.

Vogliamo dedicare questo spazio all’approfondimento di un argomento sollevato con veemenza da Carletto, il geniale webmaster. L’argomento sono ovviamente le statistiche, vanto di Charles, croce e delizia di ogni serio webmaster. Per comprendere per quale ragione le statistiche sono un problema occorre dare una breve (e speriamo chiara) spiegazione di come funziona il protocollo http, che è poi lo strumento principale attraverso cui viaggiano le pagine web.

Il protocollo HTTP. Un protocollo stateless.

Uno dei cardini fondamentali del protocollo HTTP è legato alla sua natura stateless. Il server (in generale) non mantiene informazioni sullo stato del client. Il protocollo HTTP prevede che ogni volta che il client ha bisogno di visualizzare una informazione, il client inizia una connessione TCP (di solito sulla porta 80 ma non è necessariamente vero) verso il server ed una volta collegato inizia a chiedere i documenti di cui ha bisogno. Questi documenti possono essere la “home page” (tipicamente index.html ma non è detto) oppure le immagini, oppure un qualsiasi file di cui il client ha bisogno (un CSS, un javascript) e che è presente sul server, a disposizione dei client. Il ruolo centrale ovviamente in questo ruolo spetta al client, che deve richiedere al server tutti i dati necessari per “renderizzare” (visualizzare) la pagina. Il server si limita a registrare in un file di log il nome del documento richiesto, l’indirizzo IP del richiedente, la data e l’ora oltre che l’eventuale (opzionale) utente autenticato che ha richiesto il documento. Questa autenticazione non è quella dei vari forum, dei diversi siti oltre che di Pontilex (o Pontifex) stessi. Si tratta di un livello di autenticazione intrinseco del protocollo HTTP ed utilizzato raramente (sicuramente non da Pontifex o da Pontilex). E non si tratta dell’autenticazione del protocollo HTTPS (su cui bisognerebbe spendere un paio di articoli prima di aver esposto l’indice delle cose da dire al riguardo).

Qualsiasi server può registrare nei suoi log SOLO le informazioni che ho indicato. Non perchè esistono convenzioni o limiti di altro tipo ma solo per i limiti intrinseci del protocollo HTTP.

Prima di procedere occorre ribadire un concetto che CdP ha evidenziato in passato. L’assegnazione degli indirizzi IP avviene abitualmente attraverso un protocollo (DHCP) che privilegia la dinamicità. Quindi uno stesso PC, collegato ad Internet in due momenti diversi può avere due diversi indirizzi. Questo primo livello di complessita viene ulteriormente scombussolato dall’utilizzo di tecniche come il NAT (Network Address Translation), il tunneling e molto altro. In sostanza tutte queste ultime considerazioni servono soltanto per chiarire che le informazioni presenti nei log di qualsiasi web server possono essere usate per fare un qualche tipo di analisi ma si rivelano comunque insufficienti per rivelare il comportamento dell’utente finale. Infatti dalle log di un qualsiasi server possiamo sapere COSA è satato richiesto dai client, QUANDO è stato richiesto e l’indirizzo IP da cui proviene la richiesta. Dato che -come abbiamo detto prima- l’indirizzo IP non è un dato particolarmente significativo circa l’identità del client e visto che dietro un unico indirizzo si possono nascondere diversi client (grazie ai sempre più diffusi proxy oltre che ai sempre più diffusi gateway dotati di NAT), risulta ovvio che fin da subito si è avvertita l’esigenza di dotare il World Wide Web di uno strumento opzionale ma estremamente utile. I cookies.

I cookies.

Cosa è un cookie? Per farla breve, un cookie è un valore (anzi una accoppiata di parole, nella forma “chiave”=”valore”) che il server può inviare al client con l’obiettivo di rendere più agevole la navigazione del client. Come è possibile che il vostro client si ricordi la username e la password che usate per collegarvi a Pontilex? Come è possibile che visitando un sito, questo sito possa identificarmi e mostrare “Ciao Tizio, ben tornato”?

Tutto questo è reso possibile dal fatto che il server (che, ribadiamo, non mantiene informazioni sui client) ha inviato al nostro client dei cookies in cui sono memorizzate le informazioni (come l’utente ed in un certo senso la password), evitandoci la scocciatura di inserire queste informazioni ogni volta che apriamo una pagina. In realtà i cookies entrano in gioco anche quando scegliete di postare un commento su Pontilex, di produrre una vostra pagina su Pontilex. Addirittura ogni volta che caricate una pagina di Pontilex. Perchè il server ad ogni connessione (quella connessione alla porta TCP di cui si parlava sopra) del client può chiedere di leggere i cookies che il server stesso ha inviato in precedenza.

Faccio presente che la gestione di questi Cookies è tutt’ora opzionale. Nel senso che si può navigare anche senza cookies. Anche se questo ovviamente comprometterebbe buona parte delle caratteristiche del web  a cui siamo abituati. Senza cookies saremmo costretti ad inserire la nostra login e  la nostra password ogni volta che vogliamo pubblicare un commento qui su Pontilex (anche se siamo utenti registrati), tanto per fare un esempio.

Gestione dei Cookies di Chrome

Alcuni dei cookies sul mio PC.

I cookies ovviamente si prestano bene (essendo gestiti direttamente dal client, indipendentemente dal suo indirizzo IP ed essendo persistentemente registrato al suo interno) al tracking degli utenti. Google Analytics (come la maggior parte degli strumenti di tracking) usa proprio i cookies per poter individuare i comportamenti degli utenti. Come posso sapere io server, quando ricevo una nuova connessione, se il client ha già visitato il mio sito? Provo a chiedergli il “mio” cookie. Se il client già possiede il mio cookie, allora è un utente che torna a visitare lo stesso sito. Se invece non c’è il cookie, il server ne inventa uno e lo manda al client in modo che lo immagazzini al suo interno. Ora che abbiamo capito come funzionano i cookies, evidenziamo perchè le analisi statistiche sugli accessi alle pagine di un server, anche usando i cookies, possono essere fuorvianti.

Analytics: croce e delizia.

Per come abbiamo esposto l’argomento, i cookies sembrano essere la panacea di tutti i mali. Purtroppo la nostra esposizione ha volutamente trascurato l’aspetto umano, concentrandosi solo sull’aspetto tecnico. Infatti i cookies servono poco quando -ad esempio- il computer è usato da più persone. Come distinguere le pagine visitate da diverse persone? Per esempio come distinguere le pagine visitate da diversi utenti di una biblioteca o di un Internet Cafe che condividono tra loro i diversi computer (ed hanno quindi diversi cookies sparsi sui diversi computer)? Inoltre va ricordato che i cookies vengono registrati da ogni singolo browser. Se io utilizzo due browser (ad esempio Chrome e Firefox), i cookies di un prodotto non saranno accessibili dall’altro browser. E se un unico utente usa due computer diversi? Se il server riceve due richieste dallo stesso client (identificato univocamente dal suo cookie) a distanza di 3 ore, devo immaginare che per 3 ore il client è rimasto a leggere la pagina? Oppure potrebbero essere due persone diverse?

Evidentemente i cookies aiutano a raffinare l’analisi del comportamento degli utenti ma non risolvono il problema. Possiamo quindi affermare tranquillamente (supportati dai disclaimer che i diversi fornitori di statistiche pubblicano sui loro siti) che qualsiasi analisi del comportamento degli utenti basato sui dati di Analytics o di qualsiasi altro strumento simile è assolutamente indicativo e non riflette in maniera certa il comportamento del singolo utente. Si tratta di numeri indicativi ma non rappresentativi della realtà.

Si vuole discutere dell’affidabilità dei diversi servizi? Bene, si discuta della loro affidabilità. Ma parlare di “verità” come fa Carletto è davvero sbagliato e mostra una scarsa competenza con queste tematiche!

Per approfondire l’argomento rimandiamo alla pagina relativa di Wikipedia, dove si specifica, ad esempio, il concetto di “visita” e “sessione”.

http://en.wikipedia.org/wiki/Web_analytics

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

https://pontilex.org/wp-content/plugins/wp-monalisa/icons/wpml_bye.gif  https://pontilex.org/wp-content/plugins/wp-monalisa/icons/wpml_good.gif  https://pontilex.org/wp-content/plugins/wp-monalisa/icons/wpml_negative.gif  https://pontilex.org/wp-content/plugins/wp-monalisa/icons/wpml_scratch.gif  https://pontilex.org/wp-content/plugins/wp-monalisa/icons/wpml_wacko.gif  https://pontilex.org/wp-content/plugins/wp-monalisa/icons/wpml_yahoo.gif  https://pontilex.org/wp-content/plugins/wp-monalisa/icons/wpml_cool.gif  https://pontilex.org/wp-content/plugins/wp-monalisa/icons/wpml_heart.gif  https://pontilex.org/wp-content/plugins/wp-monalisa/icons/wpml_rose.gif  https://pontilex.org/wp-content/plugins/wp-monalisa/icons/wpml_smile.gif  https://pontilex.org/wp-content/plugins/wp-monalisa/icons/wpml_whistle3.gif  https://pontilex.org/wp-content/plugins/wp-monalisa/icons/wpml_yes.gif  https://pontilex.org/wp-content/plugins/wp-monalisa/icons/wpml_cry.gif  https://pontilex.org/wp-content/plugins/wp-monalisa/icons/wpml_mail.gif  https://pontilex.org/wp-content/plugins/wp-monalisa/icons/wpml_sad.gif 
https://pontilex.org/wp-content/plugins/wp-monalisa/icons/wpml_unsure.gif  https://pontilex.org/wp-content/plugins/wp-monalisa/icons/wpml_wink.gif  https://pontilex.org/wp-content/plugins/wp-monalisa/icons/skull-400.gif  https://pontilex.org/wp-content/plugins/wp-monalisa/icons/trident.gif  https://pontilex.org/wp-content/plugins/wp-monalisa/icons/beer.gif