HTTP Accept-Language Header

Der HTTP-Header Accept-Language ist ein Request-Header, mit dem der Client dem Server seine bevorzugten Sprachen für die Response mitteilt. Der Server kann daraufhin eine sprachlich passende Variante der angeforderten Ressource ausliefern.

Typ

Request-Header

Syntax

Der Header listet Sprach-Tags mit optionalen Quality-Werten auf.

http
Accept-Language: de-DE, de;q=0.9, en;q=0.8
Accept-Language: fr-CH, fr;q=0.9, en;q=0.8, *;q=0.5

Direktiven

Die Direktiven definieren die bevorzugten Sprachen und deren Priorität.

language-tag
Ein Sprach-Tag nach BCP 47 (z.B. "de", "de-DE", "en-US"). Kann Region, Schrift und Varianten enthalten.
q
Quality-Faktor zwischen 0 und 1 zur Gewichtung der Sprachpräferenz (Standard: 1). Höhere Werte bedeuten stärkere Präferenz.
*
Wildcard für alle nicht explizit genannten Sprachen, üblicherweise mit niedrigem Quality-Wert.

Beispiele

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

Beispiel 1 Deutscher Nutzer

http
Accept-Language: de-DE, de;q=0.9, en;q=0.5

Nutzer bevorzugt Deutsch (Deutschland), akzeptiert generisches Deutsch, notfalls Englisch als Fallback.

Beispiel 2 Mehrsprachiger Nutzer

http
Accept-Language: fr-CH, fr;q=0.9, de;q=0.8, en;q=0.7

Schweizer Nutzer bevorzugt Französisch (Schweiz), dann Französisch generisch, gefolgt von Deutsch und Englisch.

Beispiel 3 Offener Fallback

http
Accept-Language: ja, en;q=0.8, *;q=0.1

Language Negotiation Flow

Language Negotiation Prozess für mehrsprachige Inhalte

Vorteile für die Systemarchitektur

  • Verbesserte User Experience: Nutzer erhalten Inhalte in ihrer bevorzugten Sprache automatisch
  • Globale Skalierung: Eine URL kann mehrsprachige Inhalte ausliefern ohne URL-Struktur-Änderungen
  • SEO-Optimierung: Suchmaschinen können passende Sprachversionen indexieren und ausliefern

Spezifikation

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

Weitere Spezifikationen

Accept Header, Content-Language Header, Vary Header