6.6HTTP首部——实体首部字段

1.定义:

实体首部字段是包含在请求报文和响应报文中的实体部分所使用的首 部,用于补充内容的更新时间等与实体相关的信息。
在这里插入图片描述

2. Allow

在这里插入图片描述

Allow: GET, HEAD

首部字段allow用于通知客户端能够支持 Request-URI 指定资源的所 有 HTTP 方法。当服务器接收到不支持的 HTTP 方法时,会以状态码 405 Method Not Allowed 作为响应返回给客户端。
与此同时,还会把所有能支 持的 HTTP 方法写入首部字段 Allow 后返回给客户端。

3.Content-Encoding

Content-Encoding:gzip

首部字段 Content-Encoding 会告知客户端服务器对实体的主体部分选 用的内容编码方式。内容编码是指在不丢失实体信息的前提下所进行 的压缩。
在这里插入图片描述

主要采用以下四种内容编码方式:

  • gzip
  • compress
  • defalte
  • identity

4.Content-Language

在这里插入图片描述

Content-Language: zh-CN

首部字段Content-Language:会告知客户端,实体主体使用的自然语言,是英文还是中文。

5.Content-Length

在这里插入图片描述

Content-Length: 15000

首部字段 Content-Length 表明了实体主体部分的大小(单位是字 节)。对实体主体进行内容编码传输时,不能再使用 Content-Length 首部字段。

6.Content-Location

Content-Location: http://www.hackr.jp/index-ja.html

首部字段 Content-Location 给出与报文主体部分相对应的 URI。和首 部字段 Location 不同,Content-Location 表示的是报文主体返回资源对 应的 URI
比如,对于使用首部字段 Accept-Language 的服务器驱动型请求,当 返回的页面内容与实际请求的对象不同时,首部字段 Content-Location 内会写明 URI。(访问 http://www.hackr.jp/ 返回的对象却是 http://www.hackr.jp/index-ja.html 等类似情况)

7.Content-MD5

在这里插入图片描述
图:客户端会对接收的报文主体执行相同的 MD5 算法,然后与首 部字段 Content-MD5 的字段值比较

Content-MD5: OGFkZDUwNGVhNGY3N2MxMDIwZmQ4NTBmY2IyTY==

首部字段 Content-MD5 是一串由 MD5 算法生成的值,其目的在于检 查报文主体在传输过程中是否保持完整,以及确认传输到达。
对报文主体执行 MD5 算法获得的 128 位二进制数,再通过 Base64 编 码后将结果写入 Content-MD5 字段值。由于 HTTP 首部无法记录二进 制值,所以要通过 Base64 编码处理。为确保报文的有效性,作为接 收方的客户端会对报文主体再执行一次相同的 MD5 算法。计算出的值与字段值作比较后,即可判断出报文主体的准确性。

采用这种方法,对内容上的偶发性改变是无从查证的,也无法检测出 恶意篡改。其中一个原因在于,内容如果能够被篡改,那么同时意味 着 Content-MD5 也可重新计算然后被篡改。所以处在接收阶段的客户 端是无法意识到报文主体以及首部字段 Content-MD5 是已经被篡改过 的。

8.Content-Range

在这里插入图片描述

Content-Range: bytes 5001-10000/10000

针对客户端的范围请求,返回响应时使用的首部字段 Content-Range,能告知客 户端作为响应返回的实体的哪个部分符合范围请求。字段值以字节为 单位,表示当前发送部分及整个实体大小。

9.Content-Type

Content-Type: text/html; charset=UTF-8

首部字段 Content-Type 说明了实体主体内对象的媒体类型。和首部字 段 Accept 一样,字段值用 type/subtype 形式赋值。
参数 charset 使用 iso-8859-1 或 euc-jp 等字符集进行赋值。

10.Expires

在这里插入图片描述

Expires: Wed, 04 Jul 2012 08:26:05 GMT

首部字段 Expires 会将资源失效的日期告知客户端。缓存服务器在接 收到含有首部字段 Expires 的响应后,会以缓存来应答请求,在 Expires 字段值指定的时间之前,响应的副本会一直被保存。当超过 指定的时间后,缓存服务器在请求发送过来时,会转向源服务器请求 资源。
源服务器不希望缓存服务器对资源缓存时,最好在 Expires 字段内写 入与首部字段 Date 相同的时间值。
但是,当首部字段 Cache-Control 有指定 max-age 指令时,比起首部字 段 Expires,会优先处理 max-age 指令

11.Last-Modified

在这里插入图片描述

 Last-Modified: Wed, 23 May 2012 09:59:55 GMT

首部字段 Last-Modified 指明资源最终修改的时间。一般来说,这个 值就是 Request-URI 指定资源被修改的时间。但类似使用 CGI 脚本进 行动态数据处理时,该值有可能会变成数据最终修改时的时间。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章