Repr-Digest

實驗性: 這是 實驗性技術
在生產環境中使用此功能之前,請仔細檢視 瀏覽器相容性表

Repr-Digest 響應或請求頭提供了目標資源的 摘要,該摘要是 選定表示 的摘要。它在例如 Content-EncodingContent-Range 下是不變的,而這些影響 Content-Digest。此外,內容協商 可能會導致具有不同表示摘要的不同選定表示。

頭型別 表示頭
禁止的頭名稱

語法

Repr-Digest 描述了 RFC8941 字典,其鍵是摘要演算法的名稱,其值是以位元組為單位的摘要(或者對於傳統摘要演算法來說是整數摘要)。

注意: 與規範的早期草案相比,標準的 base64 編碼摘要位元組在 字典語法 中作為冒號(:,ASCII 0x3A)的一部分被包裝。

指令

摘要演算法

目前僅註冊了兩種摘要演算法,它們不被認為是不安全的:sha-512sha-256

註冊的不安全摘要演算法是:md5sha(SHA-1)、unixsumunixcksumadler(ADLER32)和 crc32c

不鼓勵使用被認為不安全的摘要演算法,因為碰撞可以現實地被強制執行,從而使摘要的效用變弱。除非在使用傳統系統(這不太可能,因為大多數系統會期望傳統的 Digest 頭,並且不理解此規範),否則請考慮不發出 Repr-Digest,而不是使用不安全的摘要演算法發出 Repr-Digest

示例

HTTP 響應,其中 Repr-DigestContent-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-DigestContent-Digest 不同

但是,靜態檔案伺服器可以選擇壓縮 HTML 頁面,導致不同的 Content-DigestRepr-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-DigestRepr-DigestContent-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 表僅在瀏覽器中載入

另請參閱