0%

http请求首部字段

Accept

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8

Accept首部字段通知服务器,用户代理能够处理的媒体类型及媒体类型的相对优先级。可用type/subtype这种形式,一次指定多种媒体类型。

文本文件:text/html,text/plain,text/css…

application/xhtml+xml,application/xml…

图片文件:image/jpg,image/gif…

视频文件:video/mpeg,video/quicktime…

应用程序使用的二进制文件:application/octet-stream,application/zip…

若想给显示的媒体类型增加优先级,使用q=来额外表示权重值,用分号(;)进行分隔,权重值q范围是0~1,(可精确到小数点后3位,且1为最大值。不指定权重值q时,默认权重为q=1.0

当服务器提供多种内容时,将首先返回权重值最高的媒体类型。

Accept-Charset

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

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

该首部字段用于内容协商机制的服务器驱动协商。

Accept-Encoding

Accept-Encoding:gzip,deflate

Accept-Encoding 首部字段用来告知服务器用户代理支持的内容编码及内容编码的优先级顺序。可一次性指定多种内容编码。

gzip:由文件压缩程序gzip(GNU zip)生成的编码格式,采用LZ77及32为循环冗余校验

compress:由UNIX文件压缩程序compress生成的编码格式,采用的算法LZW

deflate:组合使用zlib格式及由deflate压缩算法生成的编码格式

identity:不执行压缩或不会变化的默认编码格式

采用权值q来表示相对优先级,这点与首部字段Accept相同。可用(*)作为通配符,指定任意编码格式

Accept-Language

告知服务器用户代理能够处理的自然语言集,以及自然语言集的相对优先级。可一次指定多种自然语言集

按权重q表示相对优先级。

Authorization

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

Expect

Expect:100-continue

客户端使用首部字段Expect来告知服务器,期望出现的某种特定行为,因服务器无法理解客户端的期望做出回应而发生错误时,会返回417Expectation Failed

客户端可以利用该首部字段,写明所期望的扩展。虽然HTTP/1.1规范只定义100-continue(状态码100Continue之意)

From

首部字段From用来告知服务器使用用户代理的用户的电子邮件地址。通常使用目的是为了显示搜索引擎用户代理的负责人的电子邮件联系方式。使用代理时,尽可能包含From首部字段

Host

首部字段Host会告知服务器,请求的资源所处的互联网主机名和端口号。Host首部字段再HTTP/1.1规范内是唯一一个必须被包含在请求内的首部字段。

请求被发送到服务器时,请求中的主机名会用IP地址直接替换解决,但如果这时相同的IP地址下部署运行着多个域名,那么服务器就无法理解是哪个域名对应的请求。因此,就要使用首部字段Host来明确指出请求的主机名,若服务器未设定主机名,那直接发送空值。

Host:

If-Match

if-xxx为条件请求,服务器接收到附带条件请求后,只有判断指定条件为真,才执行请求。

首部字段If-Match,属于附带条件之一,它会告知服务器匹配资源所用的实体标记(ETag)值,这时的服务器无法使用弱ETag值,服务器对比If-Match的字段值与资源的ETag值,仅当两者一致时才执行请求,否则,返回状态码412 Precondition Failed

还可以使用(*)指定If-Match的字段值,针对这种情况,服务器会忽略ETag的值,只要资源存在就处理请求。

If-Modified-Since

If-Modified-Since: Thu,15 Apr 2004 00:00:00 GMT

首部字段If-Modified-Since属于附带条件之一,它会告知服务器若If-Modified-Since字段值早于资源的更新时间,则希望能处理该请求,而在If-Modified-Since字段值的日期时间后,如果请求的资源都没有更新,返回状态码304Not Modified的响应

If-Modified-Since用于确认代理或客户端拥有的本地资源的有效性,获取资源的更新时间可通过确认首部字段Last-Modified确定

If-None-Match

与If-Match作用相反,用于指定If-None-Match字段值的实体标记(ETag)值与请求资源得到ETag不一致时会告知服务器处理该请求。

在GET或HEAD方法中使用首部字段If-None-Match可获取最新的源,因此这与使用首部字段If-Modified-Since有些类似。

If-Range

If-Range字段值若是和ETag值或更新的日期时间匹配一致,那么就作为范围请求处理,若不一致返回全部资源

如果不使用If-Range,而是使用If-Match,服务器端的资源如果更新了,那客户端持有的资源中的一部分也会随之无效,服务器端就会以402 Precondition Failed返回,催促客户端再次发请求,与使用If-Range相比,就要花费两倍的功夫。

If-Unmodified-Since

与If-Modified-Since作用相反,它的作用是告知服务器,指定的资源只有在字段值内指定的日期时间之后未发生更新得情况下,才能处理请求,如果在指定日期时间后发生了更新,则以状态码412 Precondition Failed作为响应返回

Max-Forwards

通过TRACE方法或OPTIONS方法,发送包含首部字段Max-Forwards的请求时,该字段以十进制整数的形式指定可经过的服务器最大数目。服务器在往下一个服务器转发请求前,Max-Forwards的值减1后重新复制,当服务器收到Max-Forwards值为0的请求时则不再进行转发,而是直接返回响应。

如果代理服务器由于某些原因导致请求转发失败,客户端也就等不到服务器返回的响应。