Per dare maggior chiarezza all’argomento, preferisco dividere in due parti l’argomento e affrontare gli headers nella Http Request in questo articolo e lasciare gli headers della Response ad una seconda parte.
Come riferimento per questo post prendete la parte inferiore dell’immagine qui sopra che riguarda le Intestazioni di Richiesta
Pronti? Iniziamo
Host : pecciola.com
Una richiesta http è inviata ad uno specifico indirizzon IP, ma capita spesso che alcuni serevers sono capaci di hostare più siti sotto uno stesso IP e, quindi, occorre specificare il dominio preciso. O meglio nome dell’host, dominio e sottodominio
In php esiste una variabile speciale, $_SERVER, che contiene alcune importanti informazioni al riguardo. Si tratta di un array e a questo link trovate tutti i possibili modi d’uso che, comunque, vedrete anche in seguito.
User Agent : Mozilla /5.0 (Windows;U;Windows NT 5.1; it; rv:1.9.1.5)
Qui trovate facilmente informazioni sul browser del client (nome e versione), sistema operativo (nome e versione) e linguaggio di default. Proprio da qui si possono trarre dati importanti di statistica su quale browser usano i visitatori di un sito, quale sistema operativo e, di conseguenza, se stanno navigando la pagina web da pc o da mobile.
Eccovi, sfruttando il php e la variabile $_SERVER['HTTP_USER_AGENT'], un esempio per tracciare quanto detto sopra :
if ( strstr($_SERVER['HTTP_USER_AGENT'],’MSIE 6′) ) {
echo “Stai utilizzando IE6!”;
}
Accept-Language : it-it,it; q=0,8 en-us;q=0,5,en; q=0,3
Si parla, ovviamente di linguaggio di default dell’utente che effettua la richiesta. Il primo è il linguaggio preferito ma c’è da notare che i valori successivi relativi ai linguaggi sono stimati a seconda delle preferenze con il q che va da un valore 0 (minimo) al valore 1 (max)
Anche in tal caso si tratta di informazioni importanti sul visitatore e la variabile php da sfruttare è la seguente : $_SERVER["HTTP_ACCEPT_LANGUAGE"]
Accept-Encoding : gzip,deflate
Ormai la maggior parte dei browser supporta il formato gzip e molti web-servers inviano l’html proprio in formato comprsso proprio leggendo l’informazione suddetta.
In php potete utilizzare la variabile $_SERVER["HTTP_ACCEPT_ENCODING"] oppure direttamente la utilissima funzione ob_gzhandler() da utilizzare così :
This web page is now COMPRESSED!
If-Modified-Since : Tue, 15 Dec 2009 08:10:37 GMT
Se la pagina web da voi richiesta è nella cache del browser, occorre sapere se è stata recentemente modificata. Se questo non è accaduto, il server vi invierà come risposta il codice ‘304 Not Modified’ che sta a significare come non c’è stata nessuna modifica sulla pagina che, pertanto, potrà essere ricaricata dalla cache.
In php la variabile utile a tale scopo è $_SERVER['HTTP_IF_MODIFIED_SINCE']
Referer : http://pecciola.com/category/browser/chrome
Come facilmente intuibile si tratta della pagina di provenienza, cioè l’url referring. Anche il tal caso sono molte le informazioni che possiamo ottenere e sfruttare da questo campo. In php la variabile da utilizzare è $_SERVER['HTTP_REFERER']
A prestissimo per la seconda e ultima parte!


Il caching ovvero come il browser gestisce la cache | Pecciola - 8 giugno 2010
[...] Attori fondamentali coinvolti in questo caso : il browser che fà la richiesta e il server che la riceve e deve rispondere. A tal proposito, prima di continuare a leggere questo post, potrebbe risultarvi utile sapere come browser e server scambiano informazioni. [...]