HTTP Headers的Request Headers

Accept
HTTP Header中Accept-Encoding 是浏览器发给服务器,声明浏览器支持的 MIME 类型

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8。意思是:浏览器支持的MIME类型分别是text/html、application/xhtml+xml、application/xml和*/*,优先顺序是它们从左到右的排列顺序。

MIME的英文全称是 Multipurpose Internet Mail Extensions(多功能 Internet 邮件扩充服务),它是一种多用途网际邮件扩充协议,在1992年最早应用于电子邮件系统,但后来也应用到浏览器。

text/html,application/xhtml+xml,application/xml 都是 MIME 类型,也可以称为媒体类型和内容类型,斜杠前面的是 type(类型),斜杠后面的是 subtype(子类型);type 指定大的范围,subtype 是 type 中范围更明确的类型,即大类中的小类。

Text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的;

text/html表示 html 文档;

Application:用于传输应用程序数据或者二进制数据;

application/xhtml+xml表示 xhtml 文档;

application/xml表示 xml 文档;

*/*表示任意类型。

Accept-Encoding
HTTP Header中Accept-Encoding 是浏览器发给服务器,声明浏览器支持的编码类型
常见的有

Accept-Encoding: compress, gzip //支持compress 和gzip类型
Accept-Encoding: //默认是identity
Accept-Encoding: * //支持所有类型 Accept-Encoding: compress;q=0.5, gzip;q=1.0//按顺序支持 gzip , compress
Accept-Encoding: gzip;q=1.0, identity; q=0.5, *;q=0 // 按顺序支持 gzip , identity

服务器返回的对应的类型编码header是 content-encoding.服务器处理accept-encoding的规则如下所示

  1. 如果服务器可以返回定义在Accept-Encoding 中的任何一种Encoding类型, 那么处理成功(除非q的值等于0, 等于0代表不可接受)
  2. “*” 代表任意一种Encoding类型 (除了在Accept-Encoding中显示定义的类型)
  3. 如果有多个Encoding同时匹配, 按照q值顺序排列
  4. identity总是可被接受的encoding类型(除非显示的标记这个类型q=0) ,
    如果Accept-Encoding的值是空, 那么只有identity是会被接受的类型
    如果Accept-Encoding中的所有类型服务器都没发返回, 那么应该返回406错误给客户端
    如果request中没有Accept-Encoding 那么服务器会假设所有的Encoding都是可以被接受的。
    如果Accept-Encoding中有identity 那么应该优先返回identity (除非有q值的定义,或者你认为另外一种类型是更有意义的)

注意:
如果服务器不支持identity 并且浏览器没有发送Accept-Encoding,那么服务器应该倾向于使用HTTP1.0中的 “gzip” and “compress” , 服务器可能按照客户端类型 发送更适合的encoding类型大部分HTTP1.0的客户端无法处理q值。

Accept-Language
Accept-Language表示浏览器所支持的语言类型;

zh-cn表示简体中文;zh 表示中文;"*"表示通配符;

q是权重系数,范围 0 =< q <= 1,q 值越大,请求越倾向于获得其“;”之前的类型表示的内容,若没有指定 q 值,则默认为1,若被赋值为0,则用于提醒服务器哪些是浏览器不接受的内容类型。

Referer
  当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理。

猜你喜欢

转载自blog.csdn.net/qq_41411324/article/details/111255215