Content Encoding

content encoding

Copyright ┬ę Shutterstock/ gonin

Was ist Content Encoding?

Content Encoding findet Anwendung f├╝r die Verschl├╝sselungen von Inhalten vor dem Versenden bei HTTP-Anwendungen. Der Server komprimiert in diesem Fall beispielsweise ein umfangreiches HTML-Dokument, bevor es an den Client gesendet wird. Der Inhalt wird durch den Server so verschl├╝sselt, dass unbefugte Dritte den Inhalt des Dokuments nicht angezeigt bekommen. Die entsprechenden Verschl├╝sselungsarten (Kodierungen) werden auf den Inhalt des Absenders angewandt. Sobald dieser Inhalt wieder entschl├╝sselt (dekodiert) wurde, werden diese Daten wie ├╝blich an den Empf├Ąnger als sogenannte Entity-Bodies gesendet.

Beschreibung

F├╝r die Inhaltskodierung wird das Entity-Header-Feld als Modifikator (Bestimmungswert) f├╝r den Medientyp verwendet. Ist dieser Wert vorhanden, gibt er an, welche zus├Ątzlichen Inhaltskodierungen auf den Entity-Body angewendet wurden und welche Dekodierungsmechanismen benutzt werden m├╝ssen, um den Medientyp zu erhalten, auf den das Header-Feld verweist.

Wissenswert

Das Content Encoding ist somit ein Merkmal einer Dateneinheit, die durch den Request-URI identifiziert wird. Normalerweise wird der Entity-Body mit dieser Kodierung gespeichert und nur vor dem Rendern oder einer analogen Verwendung wieder dekodiert. Ein nicht transparenter Proxy-Server kann jedoch die Inhaltskodierung modifizieren, wenn bekannt ist, dass die neue Kodierung f├╝r den Empf├Ąnger akzeptabel ist (es sei denn, die Cache-Steueranweisung “no-transform” ist in der Nachricht vorhanden).

Im Fall, dass die Inhaltskodierung einer Dateneinheit nicht identisch ist, muss die Antwort einen Content-Encoding-Header enthalten, der die verwendete(n) Nicht-Identit├Ątsinhaltskodierung(en) auff├╝hrt. Liegt dies vor und eine Inhaltskodierung ist nicht f├╝r eine Anforderungsnachricht des Ursprungsservers akzeptabel, so sollte der Server mit dem Statuscode 415 antworten (nicht unterst├╝tzter Medientyp).

Mehrere Dateneinheiten

Wurden auf einer Dateneinheit mehrere Kodierungen angewandt, m├╝ssen die Inhaltskodierungen in der Reihenfolge aufgef├╝hrt sein, in der sie angewendet wurden. Zus├Ątzliche Informationen zu den Kodierungsparametern k├Ânnen von anderen Entity-Header-Feldern bereitgestellt werden, die nicht in dieser Spezifikation definiert sind.

Content Encoding Prozess

Der Prozess stellt sich wie folgt dar:

1. Ein Webserver generiert eine urspr├╝ngliche Antwortnachricht mit den urspr├╝nglichen Kopfzeilen “Content-Type” und “Content-Lenght”.

2. Ein Content Encoding Server (m├Âglicherweise der Ursprungsserver oder ein Downstream-Proxy) erstellt eine kodierte Nachricht. Die verschl├╝sselte Nachricht hat den gleichen Inhaltstyp, aber (wenn zum Beispiel der Hauptteil komprimiert ist) eine andere Inhaltsl├Ąnge. Der Content Encoding Server f├╝gt der kodierten Nachricht einen sog. Content-Encoding-Header hinzu, sodass eine empfangende Anwendung diese dekodieren kann.

3. Ein Empfangsprogramm erh├Ąlt die verschl├╝sselte Nachricht, dekodiert sie und erh├Ąlt anschlie├čend das Original.

Richtlinien

Ein Format, das die Lempel-Ziv-Codierung (LZ77) verwendet, mit einem 32-Bit-CRC. Dies ist das urspr├╝ngliche Format des UNIX-gzip-Programms. Der HTTP / 1.1-Standard empfiehlt au├čerdem, dass die Server, die diese Inhaltskodierung unterst├╝tzen, x-gzip aus Kompatibilit├Ątsgr├╝nden als Alisasnamen erkennen.
Ein Format, das den Lempel-Ziv-Welch-Algorithmus (LZW) verwendet. Der Wertname wurde aus dem UNIX-Kompressionsprogramm ├╝bernommen, das diesen Algorithmus implementierte. Wie das Kompressionsprogramm, das in den meisten UNIX-Distributionen verschwunden ist, wird diese Inhaltskodierung heutzutage von vielen Browsern nicht verwendet, teilweise aufgrund eines Patentproblems (seit 2003 abgelaufen).
Verwendung der sogenannten zlib-Struktur (definiert in RFC 1950) mit dem Deflate-Kompressionsalgorithmus (definiert in RFC 1951).
Gibt die Identit├Ątsfunktionen an (d. h. keine Komprimierung oder Modifikation). Dieses Token wird, sofern nicht ausdr├╝cklich angegeben, immer als akzeptabel betrachtet.
Hier handelt es sich um ein Format, das den Brotli-Algorithmus verwendet.

Fazit

Das Content Encoding wird f├╝r die Komprimierung eines Dokumentes verwendet, ohne die eigentliche Identit├Ąt des zugrunde liegenden Medientyps zu verlieren.


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte