Accept-Encoding
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-Accept-Encoding
Request-Header und Response-Header gibt an, welche Inhaltskodierung (normalerweise ein Kompressionsalgorithmus) der Absender verstehen kann.
Bei Anfragen verwendet der Server die Inhaltsverhandlung, um einen der vom Client vorgeschlagenen Kodierungsverfahren auszuwählen und teilt dem Client die Wahl mit dem Content-Encoding
-Response-Header mit.
In Antworten gibt er an, welche Inhaltskodierungen der Server in Nachrichten zur angeforderten Ressource verstehen kann, sodass die Kodierung in nachfolgenden Anfragen an die Ressource verwendet werden kann.
Zum Beispiel wird 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 Body einer Antwort nicht zu komprimieren, wenn der Wert identity
ebenfalls akzeptabel ist.
Dies tritt in zwei häufigen Fällen auf:
- Die Daten sind bereits komprimiert, was bedeutet, dass eine zweite Kompression die übertragene Datenmenge nicht reduziert und in einigen Fällen sogar die Größe des Inhalts erhöhen kann. Dies gilt für vorab komprimierte Bildformate (JPEG zum Beispiel).
- Der Server ist überlastet und kann keine Rechneressourcen bereitstellen, um die Kompression durchzuführen. Beispielsweise empfiehlt Microsoft, nicht zu komprimieren, wenn ein Server mehr als 80 % seiner Rechenleistung verbraucht.
Solange die Direktiven identity;q=0
oder *;q=0
den identity
-Wert, der keine Kodierung bedeutet, nicht ausdrücklich verbieten, darf der Server niemals einen 406 Not Acceptable
-Fehler zurückgeben.
Hinweis:
Die IANA führt eine Liste der offiziellen Inhaltskodierungen.
Die Kodierungen bzip
und bzip2
sind nicht standardisiert, können aber in einigen Fällen, insbesondere zur Unterstützung von Altsystemen, verwendet werden.
Header-Typ | Request-Header, Response-Header |
---|---|
Verbotener Request-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-Codierung (LZ77) mit einem 32-Bit-CRC verwendet.
compress
-
Ein Kompressionsformat, das den Lempel-Ziv-Welch-Algorithmus (LZW) 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 Veränderung oder Kompression). Dieser Wert wird immer als akzeptabel betrachtet, auch 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=
(q-Werte-Gewichtung)-
Jeder Wert wird in einer Reihenfolge der Präferenz mit einem relativen Qualitätswert ausgedrückt, der als Gewicht bezeichnet wird.
Beispiele
Standardwerte von Accept-Encoding
Die Browser-Navigation hat typischerweise den folgenden Wert für den Accept-Encoding
-Request-Header:
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 unter Verwendung eines Qualitätswertes zwischen 0
(niedrigste Priorität) und 1
(höchste Priorität).
Die Brotli-Kompression wird mit 1.0
gewichtet, was br
zur ersten Wahl des Clients macht, 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 |
Browser-Kompatibilität
Siehe auch
415 Unsupported Media Type
- HTTP Inhaltsverhandlung
- Ein Header mit dem Ergebnis der Inhaltsverhandlung:
Content-Encoding
- Andere ähnliche Header:
TE
,Accept
,Accept-Language
- Brotli-Kompression
- GZip-Kompression
- Zstandard-Kompression
- Kompressionswörterbuch-Transport-Leitfaden