226 IM Used
HTTP 226 IM Used
成功响应状态码表示服务器正在响应 GET
请求,并返回一个 差异(delta)。它用于 HTTP 差异编码 的上下文中。
IM 代表 实例操作(instance manipulation),指的是生成 差异(delta) 的算法。在差异编码中,客户端发送一个带有两个请求头的 GET
请求:A-IM:
,表示对差异算法的偏好;以及 If-None-Match
,指定其拥有的资源版本。服务器响应的是相对于给定基础文档的差异,而不是完整的文档。此响应使用 226
状态码,一个 IM:
请求头来描述所使用的差异算法,并且可能包含一个 Delta-Base:
请求头,其中带有与差异关联的基础文档相匹配的 ETag
。
警告: 对 HTTP 差异编码的支持不佳意味着很少有实现。相反,大多数系统仅依赖 压缩方法 来减少带宽,尽管压缩和差异编码的组合是可能的。
即使客户端和服务器支持差异编码,代理或缓存可能不支持,并且将 HTTP 差异编码添加到系统的复杂性可能超过其带来的好处。
状态
http
226 IM Used
示例
接收带有 vcdiff
差异算法的 208
响应
在下面的 GET
请求中,客户端请求一个资源,并有一个 ETag 为 abcd123
的缓存版本。A-IM:
请求头表示偏好 vcdiff
和 diffe
差异算法。
http
GET /resource.txt HTTP/1.1
Host: example.com
A-IM: vcdiff, diffe
If-None-Match: "abcd123"
假设服务器支持差异编码,它会响应自 ETag 为 abcd123
版本以来的差异。IM
请求头表示使用了 vcdiff
算法,Delta-Base:
请求头表示该差异基于 ETag 为 abcd123
的资源。
http
HTTP/1.1 226 IM Used
ETag: "5678a23"
IM: vcdiff
Content-Type: text/plain
Content-Length: 123
Delta-Base: abcd123
...
规范
规范 |
---|
未知规范 # 第 10.4.1 节 |
另见
200
- HTTP 请求方法
- HTTP 响应状态码
- 联合供稿差异有助于降低订阅带宽成本 (2017)