Thanks to visit codestin.com
Credit goes to developer.mozilla.org

此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

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

参见