di: Claudio Garau 15 Gennaio 2009
Gli headers (letteralmente 'intestazioni') trasmessi attraverso il protocollo HTTP (Hyper Text Transfer Protocol) non sono altro che delle informazioni prodotte dall'interazione tra il browser del client che invia delle richieste e il server che le raccoglie e invia delle risorse in risposta ad esse. PHP integra alcune funzioni utili per la gestione degli headers delle pagine Internet, nel corso di questa trattazione ne descriveremo alcune ponendo particolare attenzione agli aspetti pratici del loro utilizzo.
Fondamentalmente esistono due tipologie di headers:
Un modo molto semplice di visualizzare gli headers inviati in richiesta da una pagina Web è quello di utilizzare la funzione getallheaders(), messa a disposizione da PHP; questa funzione ha il compito di produrre in output un array in cui sono contenute tutte le informazioni relative agli headers inviati in input.
Si osservi l'esempio seguente:
<?php # chiamata alla funzione per la raccolta dei request headers $headers = getallheaders(); # visualizzazione dei valori dell'array tramite ciclo foreach ($headers as $name => $content) { echo "[$name] = $content<br />\n"; } ?>
Il breve codice appena proposto permette di mostrare gli headers inseriti in un array tramite la funzione getallheaders() utilizzando un semplice ciclo foreach; nella postazione in cui è stato scritto questo articolo la sua esecuzione ha restituito i seguenti risultati:
[Accept] = text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 [Accept-Charset] = ISO-8859-1,utf-8;q=0.7,*;q=0.7 [Accept-Encoding] = gzip,deflate [Accept-Language] = it-it,it;q=0.8,en-us;q=0.5,en;q=0.3 [Cache-Control] = max-age=0 [Connection] = keep-alive [Cookie] = dbx-pagemeta=grabit:0-|1+|2-|3+|5-|6+|7+|4+&advancedstuff:0-; dbx-postmeta=grabit:0+|1+|2+|3+|4+|5+|6+&advancedstuff:0-|1-|2- [Host] = localhost [Keep-Alive] = 300 [Referer] = http://localhost/mail/ [User-Agent] = Mozilla/5.0 (Windows; U; Windows NT 5.0; it; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4
Sarebbe stato possibile produrre in output le stesse informazioni effettuando una stampa degli indici e dei valori contenuti nell'array con una semplice chiamata della funzione print_r():
<?php print_r(getallheaders()); ?>
getallheaders() non è altro che un alias della funzione apache_request_headers() fornita da PHP per il medesimo scopo e sostanzialmente opposta alla funzione apache_response_headers(); quest'ultima viene utilizzata per produrre un array contenente tutte le informazioni relative agli headers inviati in risposta dal Web server di seguito alla richiesta operata da un client, per utilizzarla sarà possibile modificare gli esempi fatti in precedenza sostituendola alle funzioni già utilizzate.
Di seguito è possibile visualizzare gli headers prodotti in risposta ad un richiesta lanciata verso la pagina http://it2.php.net/manual/en/function.apache-response-headers.php utilizzando Google come USER AGENT:
[Cache-Control] = HTTP/1.1 200 OK [Date] = Wed, 10 Dec 2008 15:53:43 GMT [Server] = Apache/2.0.48 (Fedora) [X-Powered-By] = PHP/5.1.1 [Content-language] = en [Set-Cookie] = LAST_LANG=en; expires=Thu, 10-Dec-2009 15:53:43 GMT; path=/; domain=.php.net [Set-Cookie] = COUNTRY=ITA%2C194.177.96.140; expires=Wed, 17-Dec-2008 15:53:43 GMT; path=/; domain=.php.net [Last-Modified] = Wed, 10 Dec 2008 15:45:11 GMT [Vary] = Cookie [Connection] = close [Content-Type] = text/html;charset=utf-8
Guida Zend FrameworkDiventate professionisti dello sviluppo Web. Zend Framework è lo... |
Guida Applicazioni Facebook con PHPCome realizzare un'applicazione per Facebook. Dalle basi della... |
Guida PHP con Windows e IISInstallare ambienti per lo sviluppo e la produzione di applicazioni... |
Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.
Iscriviti alla newsletter
|
|
Corso Google AdWords Base27 Febbraio 2012 a Milano |
|
|
Corso Google AdWords Base28 Marzo 2012 a Roma |