获取请求header的各种方法
部分代码非原创
不定期更新
PHP
function get_all_header() {
// 忽略获取的header数据。这个函数后面会用到。主要是起过滤作用
$ignore = array('host','accept','content-length','content-type');
$headers = array();
//这里大家有兴趣的话,可以打印一下。会出来很多的header头信息。咱们想要的部分,都是‘http_'开头的。所以下面会进行过滤输出。
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;
}
jQuery.ajax
$.ajax({
type: 'HEAD', // 获取头信息,type=HEAD即可
url : window.location.href,
complete: function( xhr,data ){
// 获取相关Http Response header
var wpoInfo = {
// 服务器端时间
"date" : xhr.getResponseHeader('Date'),
// 如果开启了gzip,会返回这个东西
"contentEncoding" : xhr.getResponseHeader('Content-Encoding'),
// keep-alive ? close?
"connection" : xhr.getResponseHeader('Connection'),
// 响应长度
"contentLength" : xhr.getResponseHeader('Content-Length'),
// 服务器类型,apache?lighttpd?
"server" : xhr.getResponseHeader('Server'),
"vary" : xhr.getResponseHeader('Vary'),
"transferEncoding" : xhr.getResponseHeader('Transfer-Encoding'),
// text/html ? text/xml?
"contentType" : xhr.getResponseHeader('Content-Type'),
"cacheControl" : xhr.getResponseHeader('Cache-Control'),
// 生命周期?
"exprires" : xhr.getResponseHeader('Exprires'),
"lastModified" : xhr.getResponseHeader('Last-Modified')
};
// 在这里,做想做的事。。。
}
});
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的各种方法的更多相关文章
- js ajax设置和获取自定义header信息的方法总结
目录 1.js ajax 设置自定义header 1.1 方法一: 1.2 方法二: 2.js ajax 获取请求返回的response的header信息 3.js ajax 跨域请求的情况下获取自定 ...
- 获取请求 header 中指定字段的值
private function getHeader($name) {//获取请求头中$name的值 $name = 'HTTP_' . $name; foreach ($_SERVER as $ke ...
- php获取网页header信息的4种方法
php获取网页header信息的方法多种多样,就php语言来说,我知道的方法有4种, 下面逐一献上. 方法一:使用get_headers()函数 推荐指数: ★★★★★ get_header方法最简单 ...
- ServletRequest HttpServletRequest 请求方法 获取请求参数 请求转发 请求包含 请求转发与重定向区别 获取请求头字段
ServletRequest 基本概念 JavaWeb中的 "Request"对象 实际为 HttpServletRequest 或者 ServletRequest, ...
- 【SpringMVC】获取请求参数
通过ServletAPI获取 test.html <a th:href="@{/testServletAPI(username='admin',password=123456)}&qu ...
- 4、处理方法中获取请求参数、请求头、Cookie及原生的servlet API等
1.请求参数和请求头 使用@RequestParam绑定请求参数,在处理方法的入参处使用该注解可以把请求参数传递给请求方法 —— value :参数名 —— required : 是否必须,默认为tr ...
- Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- springMvc源码学习之:spirngMVC获取请求参数的方法2
@RequestParam,你一定见过:@PathVariable,你肯定也知道:@QueryParam,你怎么会不晓得?!还有你熟悉的他 (@CookieValue)!她(@ModelAndView ...
- (一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
(一)----使用HttpClient发送HTTP请求(通过get方法获取数据) 一.HTTP协议初探: HTTP(Hypertext Transfer Protocol)中文 “超文本传输协议”,是 ...
随机推荐
- MyBatis基础-CRUD
一.mybatis 环境搭建步骤 第一步:创建 maven 工程第二步:导入坐标第三步:编写必要代码(实体类和持久层接口)第四步:编写 SqlMapConfig.xml第五步:编写映射配置文件第六步 ...
- python数据池,python3编码str转bytes,encode
一.python2 python3的区别 默认编码:2--ASCII码 3---UTF-8 print:python2 可以不需要加括号(),python3必须加括号 python2中有range, ...
- 使用Math.random()函数生成n到m间的随机数字
使用js生成n到m间的随机数字,主要目的是为后期的js生成验证码做准备,Math.random()函数返回0和1之间的伪随机数 讲解: 本文讲解如何使用js生成n到m间的随机数字,主要目的是为后期的j ...
- 面试系列 31 zk都有哪些使用场景
大致来说,zk的使用场景如下,我就举几个简单的,大家能说几个就好了: (1)分布式协调:这个其实是zk很经典的一个用法,简单来说,就好比,你A系统发送个请求到mq,然后B消息消费之后处理了.那A系统如 ...
- JS流程控制语句 多种选择(Switch语句) 当有很多种选项的时候,switch比if else使用更方便。
多种选择(Switch语句) 当有很多种选项的时候,switch比if else使用更方便. 语法: switch(表达式) { case值1: 执行代码块 1 break; case值2: 执行代码 ...
- linux系统使用小记
1.解决Ubuntu不能正常使用vi的问题.sudo apt-get remove vim-common sudo apt-get install vim 2.备份linux系统,注意,有的优盘单 ...
- AM历史消息及文件记录删除
1.下载 folderclear.bat 文件 2.用编辑方式打开这个文件 3.对里面的参数做修改 4.这个批处理文件,保留了 完整的一个月的消息记录 (如 今天是 2017.3.15 ,那么 清除数 ...
- 非旋Treap及其可持久化
平衡树这种东西,我只会splay.splay比较好理解,并且好打,操作方便. 我以前学过SBT,但并不是很理解,所以就忘了怎么打了. 许多用平衡树的问题其实可以用线段树来解决,我们真正打平衡树的时候一 ...
- HTML - 表格标签相关
<html> <head></head> <body> <!-- table (表格) border : 表格的边框 width : 表格的宽 h ...
- apache tomcat 一个网站多域名的实现方法
因此处是进行多域名设置,所以 Apache 与 tomcat的结合没有详述,此处只是设置多域名的方法 windows下 C:\WINDOWS\system32\drivers\etc 文件夹内 hos ...