HTTP详解--请求首部字段(十)
-
请求首部字段
-
作用:从客户端往服务器端发送请求报文中所使用的字段,用于补充请求的附加信息,客户端信息,对响应内容相关的优先级等内容;
-
-
Accept
- 作用:该字段可通知服务器,用户代理能够处理的媒体类型及媒体类型的相对优先级。可使用type/subtype这种形式,一次指定多种媒体类型;
-
媒体类型示例:
-
文本文件
- text/html,text/plain,text/css...
- application/xhtml+xml,application/xml...
-
图片文件
- image/jpeg,image/gif,image/png...
-
视频文件
- video/mpeg.video/quicktime...
-
应用程序使用的二进制文件
- application/octer-stream,application/zip...
-
-
Accept-Charset
- 作用:用来通知服务器用户代理支持的字符集及字符集的相对优先顺序。它可以一次性指定多个字符集。
-
Accept-Encoding
- 作用:用来告知服务器用户代理支持的内容编码及内容编码的优先级顺序。可一次性指定多种内容编码;
-
内容编码示例:
- gzip:由文件压缩程序gzip生成的编码格式,采用Lempel-Ziv算法及32为循环冗余校验;
- compress:由UNIX文件压缩程序compress生成的编码格式;
- deflate:组合zlib格式及由deflate压缩算法生成编码格式;
- identity:不执行压缩或不会变化的默认格式;
-
Accept-Language
- 作用:用来通知服务器用户代理能够处理的自然语言集(中文或英文)等,以及自然语言集的相对优先级。可一次指定多种自然语言集;
-
Authorization
- 作用:用来通知服务器,用户代理的认证信息。通常,想要通过服务器认证的用户代理会在接收到返回的401状态码响应后,把首部字段Authorization加入请求中。共用缓存在接收到含有Authorization首部字段的请求时的操作处理会略有差异;
-
Expect
- 作用:客户端使用首部字段Expect来告知服务器,期望出现的某种特定行为。因服务器无法理解客户端的期望作出回应而发生错误时,会返回状态码417Expectation Failed;
-
From
-
作用:用来告知服务器使用用户代理的用户的电子邮件地址。一般的使用目的就是为了显示搜索引擎等用户代理的负责人的电子邮件联系方式。
- 使用代理时,应尽可能包含From首部字段;
-
-
Host
-
作用:虚拟主机运行在同一个IP上,因此使用首部字段Host加以区分;
- Host会告知服务器,请求的资源所处的互联网主机名和端口号。Host在HTTP/1.1规范内是必须被包含在请求内的首部字段;
- Host和以单台服务器分配多个域名的虚拟主机的工作机制有很密切的关联;
-
-
If-Match
- 作用:条件请求。服务器接收到附带条件的请求后,只有判断指定条件为真时,才会执行请求;
-
示例
- 只有当If-Match的字段值跟ETag值匹配一致时,服务器才会接收请求;
- If-Match属附带条件之一,它会告知服务器匹配资源所用的实体标记(ETag)值。这时的服务器无法使用弱ETag值;
- 服务器会比对If-Match的字段值和资源的ETag值,仅当两者一致时,才会执行请求。反之,则返回状态码412;
- 还可以使用星号(*)指定If-Match的字段值。这种情况,服务器会忽略ETag的值,只要资源存在就处理请求;
-
If-Modified-Sine
-
作用:如果在If-Modified-Since字段指定的日期时间后,资源发生了更新,服务器会接收请求;
-
-
-
If-None-Match
- 作用:只有在If-None-Match的字段值与ETag值不一致时,可处理该请求。与If-Match的作用相反;
-
If-Range
- 作用:它告知服务器若指定的If-Range字段值和请求资源的ETag值或时间相一致时,则作为范围请求处理。反之,则返回全体资源;
-
问题:使用If-Range发送请求时,如果服务器端的资源更新,那么客户端持有资源中的一部分也会随之无效,那么范围请求作为前提是无效的。这时服务器会暂且响应状态码412,目的是催促客户端再次发送请求。这就相当于花费了两倍的时间;
-
If-Unmodified-Since
- 作用:告知服务器,指定的请求资源只有在字段值内指定的日期时间之后,未发生更新的情况下,才能处理请求。与If-Modified-Since的作用相反;
-
Max-Forwards
- 作用:通过TRACE方法或OPTIONS方法,发送包含首部字段Max-Forwards的请求时,该字段以十进制整数形式指定可经过的服务器最大数目。服务器在往下一个服务器转发请求之前,Max-Forwards的值减1后重新赋值。当服务器接收到Max-Forwards值为0
-
HTTP协议进行通信时,请求可能会经过多台服务器,如果代理服务器由于某些原因导致请求转发失败
- --
-
Referer
- 作用:请求字段Referer会告知服务器请求的原始资源的URI