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 表僅在瀏覽器中載入