Page 408 - HTTP权威指南
P. 408

的实例操控,而不是那个完整的对象自身;一个 IM(Instance-Manipulation 的缩写)
                 首部,说明用于计算差异的算法;新的 ETag 首部和 Delta-Base 首部,说明用于
                 计算差异的基线文档的 ETag(理论上,它应该和客户端之前请求里的 If-None-
                 Match 首部中的 ETag 相同!)。表 15-5 中总结了差异编码使用的首部。





                                      请求报文
                                       GET /bigfile.html HTTP/1.1
                             客户端       Date: Mon, 01 Feb 2001 12:03:00 GMT  2001年2月1日星期一
                                                                           下午12时03分的页面
                  客户端收到这个响应并把
                  它缓存起来。第二天,客                                                 Hello,welcome to
                  户端又要访问这个页面,         响应报文                                   Joe’s Hardware store.
                                                                             Today’s special is on
                  它发现自己的缓存副本已          HTTP/1.1 200 OK                          hammers.
                  经过期,于是就向服务器          Content-type: text/html          服务器
                  请求最新的副本。因为客          Expires: Mon, 01 Feb 2001 12:00:00 GMT
                  户端已有一份缓存的副本,         Etag: abcdefghi09876AF
                                       ...
                  它就告知服务器自己有哪
                  份副本,并说明自己愿意         差异请求报文
                  接受差异。
                                       GET /bigfile.html HTTP.1.1         2001年2月2日星期二
                                       If-None-Match: abcdefghi09876AF
                                       A-IM: diffe                        上午3时03分的页面
                                       Date: Tue, 02 Feb 2001 03:03:00 GMT
                                                                              Hello,welcome to
                                                                             Joe’s Hardware store.
                                                              差异              Today’s special is
                                                                                on chisels.
                                                              5c.
                    客户端收到差异并将                                 chisels.
                                                              .
                    其应用到自己缓存的         差异响应报文
                    页面版本上,生成了                                        差异生成器
                    页面的最新版本。客          HTTP/1.1 226 IM Used
                                       IM: diffe
                    户端还要将ETag更         Etag: zywxtuv123456BG
                    新为页面最新版的值。         Delta-base: abcdefghi09876AF
                                       ...



                       差异应用器
                       Hello, welcome
                      to Joe’s Hardware
                     store.Today’s special
                        is on chisels.



                 图 15-10 差异编码的结构







                                                                           实体和编码   |   383
   403   404   405   406   407   408   409   410   411   412   413