HTTP Use-As-Dictionary Header

Der HTTP-Header Use-As-Dictionary ist ein Response-Header, der eine Ressource als wiederverwendbares Kompressionswoerterbuch markiert. Clients können diese Dictionaries für effizientere Kompression nachfolgender Responses verwenden.

Typ

Response-Header

Syntax

Der Header definiert Match-Kriterien für Dictionary-Nutzung.

http
Use-As-Dictionary: match="/api/*"
Use-As-Dictionary: match="/api/*", id="dict-v1"

Direktiven

Die Direktiven definieren Verwendung und Scope des Compression Dictionaries.

match
URL-Pattern (mit Wildcards), für welche Requests dieses Dictionary verwendet werden darf. Pflichtparameter.
id
Optional: Eindeutige Kennung des Dictionaries für Versionierung und Referenzierung.
type
Optional: Kompressionstyp, z.B. "br" für Brotli (Standard wenn nicht angegeben).

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für den Use-As-Dictionary-Header.

Beispiel 1 API Schema als Dictionary

http
GET /api/schema.json HTTP/1.1
Host: api.example.com

Response:

http
HTTP/1.1 200 OK
Content-Type: application/json
Use-As-Dictionary: match="/api/*"
Cache-Control: public, max-age=86400

{"$schema": "...", "definitions": {...}}

API-Schema wird als Dictionary für alle /api/* Endpoints verwendet, reduziert Payload-Größe bei JSON-Responses mit wiederkehrenden Strukturen.

Beispiel 2 Versioniertes Dictionary

http
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Use-As-Dictionary: match="/v2/*", id="api-dict-v2", type="br"
Cache-Control: immutable, max-age=31536000

[binary dictionary data]

CDN liefert versioniertes Brotli-Dictionary für API v2, ermöglicht effiziente Kompression ohne Breaking Changes bei Dictionary-Updates.

Beispiel 3 Nutzung des Dictionaries

Client Request mit Dictionary:

http
GET /api/users HTTP/1.1
Host: api.example.com
Accept-Encoding: br-d
Available-Dictionary: :pZGm1Av0IEBKARczz7exkNYsZb8LzaMrV7J32a2fFG4=:

Server Response:

http
HTTP/1.1 200 OK
Content-Encoding: br-d
Content-Dictionary: :pZGm1Av0IEBKARczz7exkNYsZb8LzaMrV7J32a2fFG4=:

[compressed with dictionary]

Client sendet Dictionary-Hash, Server komprimiert Response mit referenced Dictionary für deutlich kleinere Payload.

Dictionary Compression Flow

Shared Dictionary Compression Flow

Vorteile für die Systemarchitektur

  • Drastische Größenreduktion: Shared Dictionaries reduzieren Payload um 70-90% bei ähnlichen JSON-Strukturen
  • Niedrigere Latenz: Kleinere Responses bedeuten schnellere Übertragung besonders auf mobilen Netzen
  • Bandwidth-Effizienz: Dictionary wird einmal geladen und für viele Requests wiederverwendet

Spezifikation

IETF Draft: Compression Dictionary Transport https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-compression-dictionary

Weitere Spezifikationen

Available-Dictionary Header, Dictionary-ID Header