【编号0002】请求头都含有哪些内容字段,怎么理解?
更新时间,来一篇关于请求头的内容介绍
首先,什么是请求头?这里指的是HTTP 1 版本中的请求信息的头部内容,注意,不含主体
0. 背景说明
-
客户端:你的浏览器
-
服务器:指的是网站服务器
-
请求:客户端发送给服务器
-
响应:服务器发给客户端
下图中给出的内容,就是关于请求头的一个示例,抓包工具是浏览器 > 调试工具 > 网络栏:
1.png先看图中内容,高亮区域有三个框,分别是General、Response Headers和Request Headers。这里,只看第三个,Request Headers 请求头信息
主:请求头信息介绍
截图中,请求头信息只有9个,分别是:Accept、Accept-Encoding、Accept-Language、Cache-Control、Connection、Cookie、Host、Upgrade-Insecure-RequestS、User-Agent,这是常用的主要内容,下面就拖这些及一些主要字段做介绍
1. Accept:接收
这里面是一些声明信息,就是客户端在请求时,浏览器会自动的在请求头中,注明他能接受的类型信息,例如编码是gzip,语言是zh-CN
值 | 解释 | 示例 |
---|---|---|
Accept | 指定客户端能够接收的内容类型 | Accept: text/html,application/json |
Accept-Encoding | 指定浏览器可以支持的web服务器返回内容压缩编码类型。 | Accept-Encoding: gzip |
Accept-Language | 浏览器可接受的语言 | Accept-Language: zh-CN |
2. User-Agent:用户代理
值:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36
每个浏览器都有特定的User-Agent,例如上述的值,包含了操作系统信息(Windows NT 10.0; Win64; x64)
、浏览器信息Chrome/75.0.3770.142
。
3. Connection:连接
在HTTP的请求中,一次完整的请求是:客户端发起请求,服务端返回响应,完成后并关闭连接。这是一次最简单的请求了。
但是通常请求并非一次就可以完成,所以如果需要有连续的请求,则请求时,可以将Connection设置成keep-alive,则在连接保持期间,请求的响应速度,会得到更快的响应速度。
<u style="box-sizing: border-box;">Tips:维持时间是3000ms</u>
同样的,有保持连接,就有关闭连接,Connection有两个值,一个是keep-alive;另一个是close;
当值为close时,每次请求,都会发起TCP链接。
4. Host:主机
这个值就是请求网址的域名信息,例如:
-
http://www.spbeen.com/p/d974cd56-388b-49ba-a75c-1b5a9896183c
的host,是www.spbeen.com
-
http://127.0.0.1:8000/admin
的host,是127.0.0.1:8000
,注意要包含端口
5. Referer:来源
浏览器打开了网页a,然后在Referer上看到了网页b的连接,然后就访问了网页b
那就在这个发送请求给服务器要网页b的内容时,请求头的Referer就要上网页a的值,因为是从网页a上获得的网页b的连接
6. Cookie:饼干
cookie这个比较重要,是浏览器用于保存重要信息的,例如登录后的身份信息,就放在cookie里面
cookie的内容,可以非常的多,格式:“ a=b; c=d; e=f; ”,用分号进行分割;
<u style="box-sizing: border-box;">cookie的工作原理:就是当HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。</u>
7. Upgrade-Insecure-Requests:
值:1
这条信息是告诉服务器,自己支持安全的HTTP操作,也就是支持HTTPS协议,并且可以再以后发请求的时候不用http而用https
8. Proxy-Authorization
这个信息比较特殊,也就是一个代理的身份认证信息,这个的使用方式,通常是配合请求时使用的代理来工作的,步骤如下:
-
请求时,将代理ip信息、请求头的Proxy-Authorization认证信息,一并带上
-
然后请求被发往代理IP服务器上
-
服务器读取请求头中的Proxy-Authorization信息
-
识别身份,去掉请求头中的代理身份信息
-
转发请求到真正的目的地
-
拿到响应后,将响应转发给客户端
解释:连接到代理的授权证书
常见值:Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== 【后续的值,通常是base64编码】
辅一:General
先上图,在介绍
2.png这个是最简单的内容,里面记录的信息,依次是:
-
请求的网址
-
请求的方式 GET 【另外还有POST、DELETE、PUT等等】
-
当前的响应状态码 200
-
远程服务器的地址:
120.27.51.6
以及端口80
-
来源信息策略:降级时不推荐【从https协议降为http协议时不发送referrer给跳转网站的服务器】
辅二:Response Headers
3.png上图就是响应头的内容,比较的少,介绍如下:
-
连接:保持连接
-
内容长度:16115
-
内容类型:html文本内容,编码是utf-8
-
日期:2019年8月17日 11:02,周四
-
服务器:nginx 1.13.12版本
-
X-Frame-Options:SAMEORIGIN,参考下方表格
选项 | 介绍 |
---|---|
DENY | 表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。 |
SAMEORIGIN | 表示该页面可以在相同域名页面的 frame 中展示。 |
ALLOW-FROM uri | 表示该页面可以在指定来源的 frame 中展示。 |
辅三:请求包长什么样子
4.png这是HTTP请求的格式,通常GET请求是不含请求主体的
以上就是本篇文章的全部介绍内容了
!放在最后
如果文章中有什么错误或者建议修改的地方,欢迎留言纠正和回复
如果你喜欢本篇文章,不妨关注一下我们的公众号,每周更新两篇原创技术文档,都是干货
wxgzh1.png