对http请求头详细探究(request head)

2019/07/28 11:46
阅读数 13

之前面试的时候很多人会问我有关http请求头字段的意思,有些问的特别的偏,但明明实际很少用。问的我一愣一愣的,我就打算用这篇文章好好研究一下。

请求头主要表达的是客户端,也就是浏览器

具体来说http请求,分为三部分:请求行,请求头, 请求体。

下面具体说的请求头部分。

如图

Accept:表示浏览器支持的 MIME 类型。

输入值的example:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8

表示客户端支持的数据格式,或者说客户端“希望”接受到的内容类型。但不一定接收到相应的值。

所以啥是MIME类型?MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。

Accept-Encoding:表示浏览器解码方式。

对于我们主动发起的ajax请求,一般数据量较少,不需要设置该字段。

Accept-Language:表示客户端接受的语言格式。

例子:zh-CN,zh;q=0.9 

那个0.9代表的是zh的权重。

话说做不同语言的网站可以跟后端用这个字段配合,但我看见有人写 一般不推荐这种方法。

Connection: keep-alive , 开启HTTP持久连接

如果每次请求图片等的时候,断开tcp连接。下一个请求在连接tcp连接,就会造成对带宽的过多消耗。

如果不设置,就是默认keep-alive(长连接)

Cookie:表示服务端给客户端传的http请求状态。

因为Http是无状态协议,无法感知到上一次请求状态,所以产生了cookie。

后端可以操作这个cookie,并直接种到我们的浏览器中。

服务端通过 set-cookie这个响应头来向客户端中写入 Cookie 信息。比如说我们在做登陆信息的时候,可以直接取出来用。

DNT:(DNot Track)表明了用户对于网站追踪的偏好。

0代表愿意被追踪。

1代表不愿意被追踪。

Host:请求头指明了服务器的域名(对于虚拟主机来说),以及(可选的)服务器监听的TCP端口号。

HTTP/1.1中必须要指明Host,如果没指明,或者指明多个,或返回404状态。

Referer:表示请求的上一个页面是什么。

我看其他的文章里有写,这个字段可以用来做访问统计。还可以做防盗链,比如你从其他站点引用了qq空间的图是现实不了的,就是通过这个字段来判定的。

User-Agent:

表示首部包含了一个特征字符串,用来让网络协议的对端来识别发起请求的用户代理软件的应用类型、操作系统、软件开发商以及版本号。

这个让我想起了js中,会用window.navigator.userAgent 来判断什么浏览器和手机系统版本号。

 

多加几个图里没有的字段,哈哈哈

 

Access-Control-Request-Method:请求方法,比如post get delete 等。

 

暂时先这样,后续还会改。

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部