Spbeen——Python技术栈

【编号0002】请求头都含有哪些内容字段,怎么理解?

2019-07-21  本文已影响0人  布拉豆

更新时间,来一篇关于请求头的内容介绍

首先,什么是请求头?这里指的是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:主机

这个值就是请求网址的域名信息,例如:

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

这个信息比较特殊,也就是一个代理的身份认证信息,这个的使用方式,通常是配合请求时使用的代理来工作的,步骤如下:

  1. 请求时,将代理ip信息、请求头的Proxy-Authorization认证信息,一并带上

  2. 然后请求被发往代理IP服务器上

  3. 服务器读取请求头中的Proxy-Authorization信息

  4. 识别身份,去掉请求头中的代理身份信息

  5. 转发请求到真正的目的地

  6. 拿到响应后,将响应转发给客户端

解释:连接到代理的授权证书

常见值:Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== 【后续的值,通常是base64编码】

辅一:General

先上图,在介绍

2.png

这个是最简单的内容,里面记录的信息,依次是:

  1. 请求的网址

  2. 请求的方式 GET 【另外还有POST、DELETE、PUT等等】

  3. 当前的响应状态码 200

  4. 远程服务器的地址:120.27.51.6 以及端口 80

  5. 来源信息策略:降级时不推荐【从https协议降为http协议时不发送referrer给跳转网站的服务器】

辅二:Response Headers

3.png

上图就是响应头的内容,比较的少,介绍如下:

  1. 连接:保持连接

  2. 内容长度:16115

  3. 内容类型:html文本内容,编码是utf-8

  4. 日期:2019年8月17日 11:02,周四

  5. 服务器:nginx 1.13.12版本

  6. X-Frame-Options:SAMEORIGIN,参考下方表格

选项 介绍
DENY 表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
SAMEORIGIN 表示该页面可以在相同域名页面的 frame 中展示。
ALLOW-FROM uri 表示该页面可以在指定来源的 frame 中展示。

辅三:请求包长什么样子

4.png

这是HTTP请求的格式,通常GET请求是不含请求主体的

以上就是本篇文章的全部介绍内容了


!放在最后

如果文章中有什么错误或者建议修改的地方,欢迎留言纠正和回复

如果你喜欢本篇文章,不妨关注一下我们的公众号,每周更新两篇原创技术文档,都是干货

wxgzh1.png
上一篇下一篇

猜你喜欢

热点阅读