Accept-Encoding header
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
Der HTTP-Anforderungsheader Accept-Encoding
request und response header gibt die Inhaltskodierung (normalerweise ein Kompressionsalgorithmus) an, die der Absender verstehen kann. Bei Anfragen verwendet der Server die Inhaltsaushandlung, um eines der Kodierungsangebote des Clients auszuwählen und teilt dem Client diese Auswahl mit dem Content-Encoding
Antwort-Header mit. In Antworten liefert es Informationen darüber, welche Inhaltskodierungen der Server in Nachrichten an die angeforderte Ressource verstehen kann, sodass die Kodierung in nachfolgenden Anfragen an die Ressource verwendet werden kann. Zum Beispiel ist Accept-Encoding
in einer 415 Unsupported Media Type
-Antwort enthalten, wenn eine Anfrage an eine Ressource (z.B. PUT
) eine nicht unterstützte Kodierung verwendet hat.
Selbst wenn sowohl der Client als auch der Server dieselben Kompressionsalgorithmen unterstützen, kann der Server entscheiden, den Körper einer Antwort nicht zu komprimieren, wenn der identity
-Wert ebenfalls akzeptabel ist. Dies tritt in zwei häufigen Fällen auf:
- Die Daten sind bereits komprimiert, was bedeutet, dass eine zweite Kompression den Umfang der übertragenen Daten nicht verringern wird und in einigen Fällen sogar die Größe des Inhalts erhöhen kann. Dies gilt für vorab komprimierte Bildformate (z.B. JPEG).
- Der Server ist überlastet und kann keine Rechenressourcen zur Durchführung der Kompression bereitstellen. Beispielsweise empfiehlt Microsoft, nicht zu komprimieren, wenn ein Server mehr als 80% seiner Rechenleistung nutzt.
Solange die Direktiven identity;q=0
oder *;q=0
den identity
-Wert, der keine Kodierung bedeutet, nicht explizit verbieten, darf der Server niemals einen 406 Not Acceptable
-Fehler zurückgeben.
Hinweis:
Die IANA pflegt eine Liste der offiziellen Inhaltskodierungen. Die Kodierungen bzip
und bzip2
sind nicht standardmäßig, können jedoch in einigen Fällen verwendet werden, insbesondere zur Unterstützung älterer Systeme.
Header-Typ | Anforderungs-Header, Antwort-Header |
---|---|
Verbotener Anforderungs-Header | Ja |
Syntax
Accept-Encoding: gzip
Accept-Encoding: compress
Accept-Encoding: deflate
Accept-Encoding: br
Accept-Encoding: zstd
Accept-Encoding: dcb
Accept-Encoding: dcz
Accept-Encoding: identity
Accept-Encoding: *
// Multiple algorithms, weighted with the quality value syntax:
Accept-Encoding: deflate, gzip;q=1.0, *;q=0.5
Direktiven
gzip
-
Ein Kompressionsformat, das die Lempel-Ziv-Kodierung (LZ77) mit einer 32-Bit-CRC verwendet.
compress
-
Ein Kompressionsformat, das den Lempel-Ziv-Welch (LZW) Algorithmus verwendet.
deflate
-
Ein Kompressionsformat, das die zlib Struktur mit dem deflate Kompressionsalgorithmus verwendet.
br
-
Ein Kompressionsformat, das den Brotli Algorithmus verwendet.
zstd
-
Ein Kompressionsformat, das den Zstandard Algorithmus verwendet.
dcb
Experimentell-
Ein Format, das den Dictionary-Compressed Brotli Algorithmus verwendet. Siehe Kompressionswörterbuch-Transport.
dcz
Experimentell-
Ein Format, das den Dictionary-Compressed Zstandard Algorithmus verwendet. Siehe Kompressionswörterbuch-Transport.
identity
-
Gibt die Identitätsfunktion an (d.h. ohne Modifikation oder Kompression). Dieser Wert wird immer als akzeptabel betrachtet, selbst wenn er weggelassen wird.
*
(Wildcard)-
Passt zu jeder Inhaltskodierung, die nicht bereits im Header aufgeführt ist. Dies ist der Standardwert, wenn der Header nicht vorhanden ist. Diese Direktive schlägt nicht vor, dass ein Algorithmus unterstützt wird, sondern zeigt an, dass keine Präferenz ausgedrückt wird.
;q=
(qvalues Gewichtung)-
Jeder Wert wird in einer Reihenfolge der Präferenz unter Verwendung eines relativen Qualitätswertes platziert, der Gewicht genannt wird.
Beispiele
Standardwerte von Accept-Encoding
Die Browser-Navigation hat typischerweise den folgenden Accept-Encoding
Anforderungs-Header-Wert:
GET /en-US/ HTTP/2
Host: developer.mozilla.org
Accept-Encoding: gzip, deflate, br, zstd
Gewichtete Accept-Encoding-Werte
Der folgende Header zeigt Accept-Encoding
-Präferenzen, indem er einen Qualitätswert zwischen 0
(niedrigste Priorität) und 1
(höchste Priorität) verwendet. Die Brotli-Kompression ist mit 1.0
gewichtet und macht br
zur ersten Wahl des Clients, gefolgt von gzip
mit 0.8
Priorität und dann jede andere Inhaltskodierung mit 0.1
:
Accept-Encoding: br;q=1.0, gzip;q=0.8, *;q=0.1
Spezifikationen
Specification |
---|
HTTP Semantics # field.accept-encoding |
Zstandard Compression and the 'application/zstd' Media Type # name-content-encoding |
Browser-Kompatibilität
Siehe auch
415 Unsupported Media Type
- HTTP Inhaltsaushandlung
- Ein Header mit dem Ergebnis der Inhaltsaushandlung:
Content-Encoding
- Andere ähnliche Header:
TE
,Accept
,Accept-Language
- Brotli-Kompression
- GZip-Kompression
- Zstandard-Kompression
- Leitfaden zum Kompressionswörterbuch-Transport