Repr-Digest
Repr-Digest
响应或请求头提供了目标资源的 摘要,该摘要是 选定表示 的摘要。它在例如 Content-Encoding
或 Content-Range
下是不变的,而这些影响 Content-Digest
。此外,内容协商 可能会导致具有不同表示摘要的不同选定表示。
语法
Repr-Digest
描述了 RFC8941 字典,其键是摘要算法的名称,其值是以字节为单位的摘要(或者对于传统摘要算法来说是整数摘要)。
注意: 与规范的早期草案相比,标准的 base64 编码摘要字节在 字典语法 中作为冒号(:
,ASCII 0x3A)的一部分被包装。
指令
摘要算法
目前仅注册了两种摘要算法,它们不被认为是不安全的:sha-512
和 sha-256
。
注册的不安全摘要算法是:md5
、sha
(SHA-1)、unixsum
、unixcksum
、adler
(ADLER32)和 crc32c
。
不鼓励使用被认为不安全的摘要算法,因为碰撞可以现实地被强制执行,从而使摘要的效用变弱。除非在使用传统系统(这不太可能,因为大多数系统会期望传统的 Digest
头,并且不理解此规范),否则请考虑不发出 Repr-Digest
,而不是使用不安全的摘要算法发出 Repr-Digest
。
示例
HTTP 响应,其中 Repr-Digest
和 Content-Digest
重合
HTTP 服务器可以发送与选定表示的字节等效的内容字节
http
...
Repr-Digest: sha-256=:AEGPTgUMw5e96wxZuDtpfm23RBU3nFwtgY5fw4NYORo=:
Content-Digest: sha-256=:AEGPTgUMw5e96wxZuDtpfm23RBU3nFwtgY5fw4NYORo=:
...
Content-Type: text/yaml
Content-Encoding: identity
Content-Length: 38054
Content-Range: 0-38053/38054
...
HTTP 响应,其中 Repr-Digest
和 Content-Digest
不同
但是,静态文件服务器可以选择压缩 HTML 页面,导致不同的 Content-Digest
和 Repr-Digest
头值
http
...
Repr-Digest: sha-256=:AEGPTgUMw5e96wxZuDtpfm23RBU3nFwtgY5fw4NYORo=:, sha-512=:U59TCCaZPA9Qio3CzHJVAgDnIAut53t5Sgkj2Gv4BvDd0b+OX9QpIdgWkzdXLmBsmvBrf3t5PBt+UrVK6k5dkw==:
Content-Digest: sha-256=:293wcr5IoFAsDCzdoDXR1Qppgf2yxOPO1bvQ3nZQtuI=:, unixsum=54809
...
Content-Type: text/html; charset=utf-8
Content-Encoding: br
...
...
http
...
Repr-Digest: sha-256=:AEGPTgUMw5e96wxZuDtpfm23RBU3nFwtgY5fw4NYORo=:, sha-512=:U59TCCaZPA9Qio3CzHJVAgDnIAut53t5Sgkj2Gv4BvDd0b+OX9QpIdgWkzdXLmBsmvBrf3t5PBt+UrVK6k5dkw==:
Content-Digest: sha-256=:rv9Jivc4TmcacLUshzN3OdX7Hz+ORnQRaiTaIKZQ0zk=:
...
Content-Type: text/html; charset=utf-8
Content-Encoding: deflate, deflate, deflate
...
...
成功使用 Want-Repr-Digest
、Repr-Digest
和 Content-Digest
的 HTTP 请求-响应
http
PUT /api/transact HTTP/1.1
Want-Repr-Digest: sha-256=8
Content-Type: text/json
...
http
HTTP/1.1 201 Created
Repr-Digest: sha-256=:W8oN3H3CmE/CBpV6ZPNozV2AIDzzQpWL7CCOXyDyDzI=:
Content-Encoding: br
Content-Digest: sha-256=:2IBI7hQn83oTCgB3Z/6apOl91WGoctRfRj/F9gkvVo8=:
...
使用 Repr-Digest
的不成功的 HTTP 请求-响应
http
GET /api/last-transaction HTTP/1.1
Accept: text/json
Repr-Digest: sha-256=:2IBI7hQn83oTCgB3Z/6apOl91WGoctRfRj/F9gkvVo8=:
...
http
HTTP/1.1 406 Not Acceptable
Repr-Digest: sha-256=:W8oN3H3CmE/CBpV6ZPNozV2AIDzzQpWL7CCOXyDyDzI=:
...
规范
规范 |
---|
未知规范 |
浏览器兼容性
BCD 表仅在浏览器中加载