6.4 HTTP首部——请求首部字段

请求首部字段是从客户端往服务器端发送请求报文中所使用的字段, 用于补充请求的附加信息、客户端信息、对响应内容相关的优先级等 内容。
在这里插入图片描述

1.Accept

在这里插入图片描述

Accept: text/html,application/xhtml+xml,application/xml;q=0.

Accept 首部字段可通知服务器,用户代理能够处理的媒体类型及媒体 类型的相对优先级。可使用 type/subtype 这种形式,一次指定多种媒 体类型。
在这里插入图片描述
比如,如果浏览器不支持 PNG 图片的显示,那 Accept 就不指定 image/png,而指定可处理的 image/gif 和 image/jpeg 等图片类型。 若想要给显示的媒体类型增加优先级,则使用 q= 来额外表示权重值 1,用分号(;)进行分隔。权重值 q 的范围是 0~1(可精确到小数点 后 3 位),且 1 为最大值。不指定权重 q 值时,默认权重为 q=1.0。

2.Accept-Charset

在这里插入图片描述

Accept-Charset: iso-8859-5, unicode-1-1;q=0.8

Accept-Charset 首部字段可用来通知服务器用户代理支持的字符集及 字符集的相对优先顺序。另外,可一次性指定多种字符集。与首部字 段 Accept 相同的是可用权重 q 值来表示相对优先级。 该首部字段应用于内容协商机制的服务器驱动协商。

3. Accept-Encoding

在这里插入图片描述

Accept-Encoding: gzip, deflate

Accept-Encoding 首部字段用来告知服务器用户代理支持的内容编码及 内容编码的优先级顺序。可一次性指定多种内容编码。
下面试举出几个内容编码的例子。
在这里插入图片描述
采用权重 q 值来表示相对优先级,这点与首部字段 Accept 相同。另 外,也可使用星号(*)作为通配符,指定任意的编码格式。

4 Accept-Language

在这里插入图片描述

Accept-Language: zh-cn,zh;q=0.7,en-us,en;q=0.3

首部字段 Accept-Language 用来告知服务器用户代理能够处理的自然 语言集(指中文或英文等),以及自然语言集的相对优先级。可一次 指定多种自然语言集。
和 Accept 首部字段一样,按权重值 q 来表示相对优先级。在上述图 例中,客户端在服务器有中文版资源的情况下,会请求其返回中文版 对应的响应,没有中文版时,则请求返回英文版响应。

5. Authorization

在这里插入图片描述

Authorization: Basic dWVub3NlbjpwYXNzd29yZA==

首部字段 Authorization 是用来告知服务器,用户代理的认证信息(证 书值)。通常,想要通过服务器认证的用户代理会在接收到返回的 401 状态码响应后,把首部字段 Authorization 加入请求中。共用缓存 在接收到含有 Authorization 首部字段的请求时的操作处理会略有差 异。

6.Expect

在这里插入图片描述
客户端使用首部字段 Expect 来告知服务器,期望出现的某种特定行 为。因服务器无法理解客户端的期望作出回应而发生错误时,会返回 状态码 417 Expectation Failed。
客户端可以利用该首部字段,写明所期望的扩展。虽然 HTTP/1.1 规 范只定义了 100-continue(状态码 100 Continue 之意)。
等待状态码 100 响应的客户端在发生请求时,需要指定 Expect:100- continue

7.From

在这里插入图片描述
首部字段 From 用来告知服务器使用用户代理的用户的电子邮件地 址。通常,其使用目的就是为了显示搜索引擎等用户代理的负责人的 电子邮件联系方式。使用代理时,应尽可能包含 From 首部字段(但 可能会因代理不同,将电子邮件地址记录在 User-Agent 首部字段 内)。

8.Host

在这里插入图片描述
图:虚拟主机运行在同一个 IP 上,因此使用首部字段 Host 加以 区分

Host: www.hackr.jp

首部字段 Host 会告知服务器,请求的资源所处的互联网主机名和端 口号。Host 首部字段在 HTTP/1.1 规范内是唯一一个必须被包含在请 求内的首部字段。 首部字段 Host 和以单台服务器分配多个域名的虚拟主机的工作机制 有很密切的关联,这是首部字段 Host 必须存在的意义。 请求被发送至服务器时,请求中的主机名会用 IP 地址直接替换解 决。但如果这时,相同的 IP 地址下部署运行着多个域名,那么服务 器就会无法理解究竟是哪个域名对应的请求。因此,就需要使用首部 字段 Host 来明确指出请求的主机名。若服务器未设定主机名,那直 接发送一个空值即可。如下所示。

Host:

9.User-Agent

在这里插入图片描述
图:User-Agent 用于传达浏览器的种类

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gec

首部字段 User-Agent 会将创建请求的浏览器和用户代理名称等信息传 达给服务器。
由网络爬虫发起请求时,有可能会在字段内添加爬虫作者的电子邮件 地址。此外,如果请求经过代理,那么中间也很可能被添加上代理服 务器的名称。

10.Referer

在这里插入图片描述

Referer: http://www.hackr.jp/index.htm

首部字段 Referer 会告知服务器请求的原始资源的 URI。
客户端一般都会发送 Referer 首部字段给服务器。但当直接在浏览器 的地址栏输入 URI,或出于安全性的考虑时,也可以不发送该首部字 段。
因为原始资源的 URI 中的查询字符串可能含有 ID 和密码等保密信 息,要是写进 Referer 转发给其他服务器,则有可能导致保密信息的 泄露。
另外,Referer 的正确的拼写应该是 Referrer,但不知为何,大家一直 沿用这个错误的拼写。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值