Http заголовки, — пожалуй, главная вещь в общении между устройствами (например, браузер - сайт). Они передают основную информацию об устанавливающемся соединении и о передаваемой информации через это соединение.
А теперь о том, как их выловить.
Самая лучшая и, наверное, единственная функция в PHP, которая нормально это делает - apache_request_headers().
print_r( apache_request_headers() );
/*
Array
(
[Host] => khtulhu.org.ua
[Connection] => keep-alive
[User-Agent] => Mozilla/5.0 (Linux; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.206.1 Safari/532.0
[Cache-Control] => max-age=0
[Accept] => application/xml
[Accept-Encoding] => gzip,deflate,sdch
[Accept-Language] => en-US,en;q=0.8
[Accept-Charset] => ISO-8859-1,utf-8;q=0.7,*;q=0.3
)
*/
Но она обладает одним недостатком - необходим установленный Apache.
Но, так как не всегда бывает так как нужно, рассмотрим альтернативные варианты.
print_r($_SERVER);
/*
[HTTP_HOST] => khtulhu.org.ua
[HTTP_CONNECTION] => keep-alive
[HTTP_USER_AGENT] => Mozilla/5.0 (Linux; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.206.1 Safari/532.0
[HTTP_CACHE_CONTROL] => max-age=0
[HTTP_ACCEPT] => application/xml
[HTTP_ACCEPT_ENCODING] => gzip,deflate,sdch
[HTTP_ACCEPT_LANGUAGE] => en-US,en;q=0.8
[HTTP_ACCEPT_CHARSET] => ISO-8859-1,utf-8;q=0.7,*;q=0.3
*/
К сожалению, этот способ не ловит все заголовки, но это лучше чем ничего.