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