226 IM Used

HTTP 226 IM Used 成功响应状态码表示服务器在响应 GET 请求时返回了一个增量。该状态码用于 HTTP 增量编码的上下文中。

IMinstance manipulation(实例操作)的缩写,指的是生成差异(增量)算法。在增量编码中,客户端发送一个 GET 请求,并携带了两个标头:A-IM: 表示偏好使用的差异算法,If-None-Match 指定了客户端已有的资源版本。服务器会返回相对于给定基础文档的增量,而不是完整的文档。此响应使用 226 状态码,一个描述所用差异算法的 IM: 标头,并可能包含一个 Delta-Base: 标头,其中带有与增量关联的基础文档的 ETag

备注: 对 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

...

规范

Specification
Unknown specification
# section-10.4.1

参见