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)