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: 请求头表示偏好 vcdiffdiffe 差异算法。

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 节

另见