Content-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 Content-Encoding Repräsentations-Header listet die Kodierungen und deren Reihenfolge auf, in der sie auf eine Ressource angewendet wurden. Dies teilt dem Empfänger mit, wie die Daten dekodiert werden müssen, um das originale Inhaltsformat, das im Content-Type-Header beschrieben ist, zu erhalten. Die Inhaltskodierung wird hauptsächlich verwendet, um Inhalte zu komprimieren, ohne Informationen über den ursprünglichen Medientyp zu verlieren.

Server sollten Daten nach Möglichkeit so stark wie möglich komprimieren und, wo angebracht, Inhaltskodierung verwenden. Bereits komprimierte Medientypen wie .zip oder .jpeg weiter zu komprimieren, ist in der Regel nicht sinnvoll, da dies die Dateigröße erhöhen kann. Wenn das ursprüngliche Medium bereits kodiert ist (z.B. als .zip-Datei), wird diese Information nicht im Content-Encoding-Header angegeben.

Wenn der Content-Encoding-Header vorhanden ist, beziehen sich andere Metadaten (z.B. Content-Length) auf die kodierte Form der Daten und nicht auf die originale Ressource, es sei denn, es wird ausdrücklich angegeben. Die Inhaltskodierung unterscheidet sich von Transfer-Encoding dahingehend, dass Transfer-Encoding regelt, wie HTTP-Nachrichten selbst über das Netzwerk auf Basis von Hop-by-Hop geliefert werden.

Header-Typ Repräsentations-Header
Verbotener Anfrage-Header Nein

Syntax

http
Content-Encoding: gzip
Content-Encoding: compress
Content-Encoding: deflate
Content-Encoding: br
Content-Encoding: zstd

// Multiple, in the order in which they were applied
Content-Encoding: deflate, gzip

Direktiven

gzip

Ein Format, das die Lempel-Ziv-Komprimierung (LZ77) mit einem 32-Bit-CRC verwendet. Dies ist das ursprüngliche Format des UNIX gzip-Programms. Der HTTP/1.1-Standard empfiehlt zudem, dass die Server, die diese Inhaltskodierung unterstützen, x-gzip als Alias erkennen sollten, um Kompatibilität zu gewährleisten.

compress

Ein Format, das den Lempel-Ziv-Welch (LZW) Algorithmus verwendet. Der Wertename wurde vom UNIX compress-Programm übernommen, das diesen Algorithmus implementierte. Wie das compress-Programm, das in den meisten UNIX-Distributionen verschwunden ist, wird diese Inhaltskodierung heute von vielen Browsern nicht mehr verwendet, teilweise wegen eines Patentproblems (es endete 2003).

deflate

Verwendung der zlib-Struktur (definiert in RFC 1950) mit dem deflate Kompressionsalgorithmus (definiert in RFC 1951).

br

Ein Format, das die Brotli-Algorithmusstruktur verwendet (definiert in RFC 7932).

zstd

Ein Format, das die Zstandard-Algorithmusstruktur verwendet (definiert in RFC 8878).

Beispiele

Komprimieren mit gzip

Auf der Client-Seite können Sie eine Liste von Kompressionsschemen übermitteln, die in einer HTTP-Anfrage gesendet werden. Der Accept-Encoding-Header wird zur Aushandlung der Inhaltskodierung verwendet.

http
Accept-Encoding: gzip, deflate

Der Server antwortet mit dem verwendeten Schema, das im Content-Encoding Antwort-Header angegeben ist.

http
Content-Encoding: gzip

Ob ein Server die vom Client angeforderten Kompressionsmethoden verwendet, hängt von der Konfiguration und den Fähigkeiten des Servers ab.

Spezifikationen

Specification
HTTP Semantics
# field.content-encoding

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch