获取请求header的各种方法
Posted dota-wiki
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取请求header的各种方法相关的知识,希望对你有一定的参考价值。
部分代码非原创
不定期更新
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;}
以上是关于获取请求header的各种方法的主要内容,如果未能解决你的问题,请参考以下文章
如何在 HttpClient 的请求中添加、设置和获取 Header?
C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段