内容编码

•内容编码

  HTTP应用程序有时在发送之前需要对内容进行编码。

 

•内容编码过程:

  1)网站服务器生成原始响应报文,其中有原始的Content-Type和Content-Length首部。

  2)内容编码服务器创建编码后的报文。编码后同样有Content-Type和Content-Length。内容编码服务器在编码后的报文中增加Content-Encoding首部,这样接收的应用程序就可以进行解码了。

  3)接收程序得到编码后的报文,进行解码,获得原始报文。

  在这个例子中,通过gzip内容编码函数对HTML页面处理之后,得到一个更小的、压缩的主体。经过网络发送的压缩的主体,并打上了gzip压缩的标志。接收的客户端使用gzip解码器对实体进行解压缩。

 

•一个包含编码的响应片段:

  HTTP/1.1 200 ok

  Date:Fri,05 Nov 1999 22:35:15 GMT

  Server:Apache/1.2.4

  Content-Length:6096

  Content-Type:image/gif

  Content-Encoding:gzip

  [……]

 

•内容编码类型:

  表152 内容编码代号

  -------------------------------------------------------------------------------------------

  Content-Encoding值          描述

  -------------------------------------------------------------------------------------------

  gzip                  表明实体采用GNU zip编码

  deflate                  表明试图是用zlib的格式压缩的

  identity                 表明没有对实体进行编码。

  -------------------------------------------------------------------------------------------

 •Accept-Encoding首部:

  毫无疑问,我们不希望服务器用客户端无法解码的方式来对内容进行编码。为了避免服务器使用客户端不支持的编码方式,客户端就把自己支持的内容编码方式列表放在请求的Accept-Encoding首部里发出去。如果HTTP请求中没有包含Accept-Encoding首部,服务器就可以假设客户端能够接受任何编码方式。

  服务器使用gzip对图像进行压缩,以便在他和客户端之间的狭窄网络连接上传送一个较小的文件,这样可以节约网络快带和客户端等待的时间。不过,客户端在收到图像之后,还需要花费时间进行解压缩。

 

posted @ 2015-11-02 14:53  Xiao|Deng  阅读(374)  评论(0编辑  收藏  举报