HTTP Accept Header

Der HTTP-Header Accept ist ein Request-Header, der dem Server mitteilt, welche Medientypen der Client verarbeiten kann. Mittels Content-Negotiation wählt der Server daraufhin das optimale Format für die Antwort.

Typ

Request-Header

Syntax

Der Header listet die akzeptierten Medientypen mit optionalen Quality-Werten auf.

http
Accept: application/json
Accept: text/html, application/json;q=0.9

Direktiven

Die Direktiven definieren die akzeptierten Medientypen und deren Präferenz.

<media-range>
Ein MIME-Typ in der Form type/subtype. Wildcards wie text/ oder /* sind zulässig.
q
Optionaler Qualitätsfaktor zwischen 0 und 1 zur Priorisierung (Standard: 1). Höhere Werte bedeuten stärkere Präferenz.

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für den Accept-Header.

Beispiel 1 Nur JSON akzeptieren

http
Accept: application/json

Client fordert ausschließlich JSON-Format, Server muss JSON liefern oder 406 Not Acceptable zurückgeben.

Beispiel 2 HTML bevorzugt dann JSON

http
Accept: text/html, application/json;q=0.9

Browser bevorzugt HTML (implizit q=1.0), akzeptiert JSON als Alternative mit geringerer Priorität.

Beispiel 3 Mehrere Typen mit abgestufter Priorisierung

http
Accept: text/html, application/xhtml+xml;q=0.9, image/*;q=0.8, */*;q=0.5

Browser akzeptiert HTML bevorzugt, dann XHTML, Bilder mit niedrigerer Priorität und alle anderen Typen als Fallback.

Content-Negotiation Flow

Content Negotiation Ablauf mit Accept-Header

Vorteile für die Systemarchitektur

  • Optimale Ressourcennutzung: Server liefert nur Formate, die der Client tatsächlich verarbeiten kann
  • Flexible API-Integration: Eine Endpunkt-URL kann verschiedene Darstellungen derselben Ressource ausliefern
  • Versionierung ohne URL-Änderung: Neue Formate können unterstützt werden, ohne bestehende Clients zu beeinträchtigen

Spezifikation

RFC 9110, Section 12.5.1 – HTTP Semantics https://www.rfc-editor.org/rfc/rfc9110.html#name-accept

Weitere Spezifikationen

Accept-Encoding Header, Accept-Language Header, Content-Type Header