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