HTTP Want-Repr-Digest Header

Der HTTP-Header Want-Repr-Digest ist ein Request-Header, der dem Server mitteilt, welche Hash-Algorithmen der Client für Representation-Integrität bevorzugt. Im Gegensatz zu Want-Content-Digest bezieht sich dies auf die Daten vor Content-Encoding wie Kompression.

Typ

Request-Header

Syntax

Der Header listet bevorzugte Hash-Algorithmen mit optionalen Quality-Werten auf.

http
Want-Repr-Digest: sha-256
Want-Repr-Digest: sha-512=10, sha-256=5

Direktiven

Die Direktiven definieren gewünschte Hash-Algorithmen für die unkomprimierte Representation.

<algorithm>
Hash-Algorithmus wie sha-256, sha-512, md5, crc32c. Berechnet auf den Daten vor Content-Encoding.
<quality>
Optional: Ganzzahl-Priorität (höher = bevorzugter), Standard ist 1. Format: algorithm=priority.

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für den Want-Repr-Digest-Header.

Beispiel 1 Hash der unkomprimierten Daten

http
GET /api/data.json HTTP/1.1
Host: api.example.com
Accept-Encoding: gzip
Want-Repr-Digest: sha-256

Response:

http
HTTP/1.1 200 OK
Content-Encoding: gzip
Content-Type: application/json
Repr-Digest: sha-256=:RK/0qy18MlBSVnWgjwz6lZEWjP/lF5HF9bvEF8FabDg=:

[gzipped JSON data]

Server liefert SHA-256-Hash der JSON-Daten vor Kompression, Client dekomprimiert und verifiziert gegen Repr-Digest.

Beispiel 2 Priorisierte Algorithmen

http
GET /api/reports/annual.pdf HTTP/1.1
Host: storage.example.com
Accept-Encoding: br
Want-Repr-Digest: sha-512=10, sha-256=5

Response:

http
HTTP/1.1 200 OK
Content-Encoding: br
Content-Type: application/pdf
Repr-Digest: sha-512=:WZDPaVn/7XgHaAy8pmojAkGWoRx2UFChF41A2svX+TaPm+AbwAgBWnrIiYllu7BNNyealdVLvRwEmTHWXvJwew==:

[brotli compressed PDF]

Client bevorzugt SHA-512, Server liefert Hash der unkomprimierten PDF-Representation für höchste Verifikationssicherheit.

Beispiel 3 Kombination mit Content-Digest

http
GET /api/files/archive.tar HTTP/1.1
Host: cdn.example.com
Accept-Encoding: gzip, br
Want-Repr-Digest: sha-256
Want-Content-Digest: sha-256

Response:

http
HTTP/1.1 200 OK
Content-Encoding: gzip
Repr-Digest: sha-256=:uU0nuZNNPgilLlLX2n2r+sSE7+N6U4DukIj3rOLvzek=:
Content-Digest: sha-256=:RK/0qy18MlBSVnWgjwz6lZEWjP/lF5HF9bvEF8FabDg=:

[gzipped tar archive]

Server liefert beide Hashes: Repr-Digest für unkomprimiertes TAR, Content-Digest für komprimierte Wire-Daten.

Repr-Digest vs Content-Digest Flow

Representation Digest Flow

Vorteile für die Systemarchitektur

  • Unabhängig von Encoding: Hash der Original-Daten bleibt gleich, egal welche Kompression verwendet wird
  • Cache-Validation: Caches können Integrität der dekomprimierten Ressource verifizieren
  • Transparente Proxies: Intermediaries können Content-Encoding ändern ohne Repr-Digest zu invalidieren

Spezifikation

RFC 9530 – Digest Fields https://www.rfc-editor.org/rfc/rfc9530.html#name-want-repr-digest

Weitere Spezifikationen

Repr-Digest Header, Want-Content-Digest Header