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 章
   390   391   392   393   394   395   396   397   398   399   400