部分代碼非原創
不定期更新
PHP
1 function get_all_header() { 2 // 忽略獲取的header數據。這個函數后面會用到。主要是起過濾作用 3 $ignore = array('host','accept','content-length','content-type'); 4 $headers = array(); 5 //這里大家有興趣的話,可以打印一下。會出來很多的header頭信息。咱們想要的部分,都是‘http_'開頭的。所以下面會進行過濾輸出。 6 foreach($_SERVER as $key=>$value){ 7 if(substr($key, 0, 5)==='HTTP_'){ 8 //這里取到的都是'http_'開頭的數據。 9 //前去開頭的前5位 10 $key = substr($key, 5); 11 //把$key中的'_'下划線都替換為空字符串 12 $key = str_replace('_', ' ', $key); 13 //再把$key中的空字符串替換成‘-’ 14 $key = str_replace(' ', '-', $key); 15 //把$key中的所有字符轉換為小寫 16 $key = strtolower($key); 17 //這里主要是過濾上面寫的$ignore數組中的數據 18 if(!in_array($key, $ignore)){ 19 $headers[$key] = $value; 20 } 21 } 22 } 23 //輸出獲取到的header 24 return $headers; 25 }
jQuery.ajax
1 $.ajax({ 2 type: 'HEAD', // 獲取頭信息,type=HEAD即可 3 url : window.location.href, 4 complete: function( xhr,data ){ 5 // 獲取相關Http Response header 6 var wpoInfo = { 7 // 服務器端時間 8 "date" : xhr.getResponseHeader('Date'), 9 // 如果開啟了gzip,會返回這個東西 10 "contentEncoding" : xhr.getResponseHeader('Content-Encoding'), 11 // keep-alive ? close? 12 "connection" : xhr.getResponseHeader('Connection'), 13 // 響應長度 14 "contentLength" : xhr.getResponseHeader('Content-Length'), 15 // 服務器類型,apache?lighttpd? 16 "server" : xhr.getResponseHeader('Server'), 17 "vary" : xhr.getResponseHeader('Vary'), 18 "transferEncoding" : xhr.getResponseHeader('Transfer-Encoding'), 19 // text/html ? text/xml? 20 "contentType" : xhr.getResponseHeader('Content-Type'), 21 "cacheControl" : xhr.getResponseHeader('Cache-Control'), 22 // 生命周期? 23 "exprires" : xhr.getResponseHeader('Exprires'), 24 "lastModified" : xhr.getResponseHeader('Last-Modified') 25 }; 26 // 在這里,做想做的事。。。 27 } 28 });
function get_all_header() { // 忽略獲取的header數據。這個函數后面會用到。主要是起過濾作用 $ignore = array('host','accept','content-length','content-type'); $headers = array(); //這里大家有興趣的話,可以打印一下。會出來很多的header頭信息。咱們想要的部分,都是‘http_'開頭的。所以下面會進行過濾輸出。
/* var_dump($_SERVER); exit; */ foreach($_SERVER as $key=>$value){ if(substr($key, 0, 5)==='HTTP_'){ //這里取到的都是'http_'開頭的數據。 //前去開頭的前5位 $key = substr($key, 5); //把$key中的'_'下划線都替換為空字符串 $key = str_replace('_', ' ', $key); //再把$key中的空字符串替換成‘-’ $key = str_replace(' ', '-', $key); //把$key中的所有字符轉換為小寫 $key = strtolower($key); //這里主要是過濾上面寫的$ignore數組中的數據 if(!in_array($key, $ignore)){ $headers[$key] = $value; } } } //輸出獲取到的header return $headers;}