Page 395 - HTTP权威指南
P. 395
列表放在请求的 Accept-Encoding 首部里发出去。如果 HTTP 请求中没有包含
Accept-Encoding 首部,服务器就可以假设客户端能够接受任何编码方式(等价
于发送 Accept-Encoding: *)。
图 15-4 展示了 HTTP 事务中的 Accept-Encoding 首部。
请求报文
GET /logo.gif HTTP/1.1
Accept-encoding: gzip
[...]
HTTP/1.1 200 OK
Content-type: image/gif
Content-encoding: gzip
gunzip [...] gzip
响应报文
...011010011... ...011010011...
服务器使用gzip对图像进行压缩,以便在它和客户端
之间的狭窄网络连接上传送一个较小的文件。这样可
以节约网络带宽和客户端等待传送的时间。不过,客
353 户端在收到图像之后,还需要花费时间进行解压缩。
图 15-4 展示了 HTTP 事务中的 Accept-Encoding 首部
Accept-Encoding 字段包含用逗号分隔的支持编码的列表,下面是一些例子:
Accept-Encoding: compress, gzip
Accept-Encoding:
Accept-Encoding: *
Accept-Encoding: compress;q=0.5, gzip;q=1.0
Accept-Encoding: gzip;q=1.0, identity; q=0.5, *;q=0
客户端可以给每种编码附带 Q(质量)值参数来说明编码的优先级。Q 值的范围从
0.0 到 1.0,0.0 说明客户端不想接受所说明的编码,1.0 则表明最希望使用的编码。
“*”表示“任何其他方法”。决定在响应中回送什么内容给客户端是个更通用的过
程,而选择使用何种内容编码则是此过程的一部分。第 17 章将详细讨论这个过程,
以及 Content-Encoding 首部和 Accept-Encoding 首部。
identity 编码代号只能在 Accept-Encoding 首部中出现,客户端用它来说明相
对于其他内容编码算法的优先级。
370 | 第 15 章