Content Encoding
Inhaltsverzeichnis
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:
- Ein Webserver generiert eine ursprüngliche Antwortnachricht mit den ursprünglichen Kopfzeilen “Content-Type” und “Content-Lenght”.
- 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.
- Ein Empfangsprogramm erhält die verschlüsselte Nachricht, dekodiert sie und erhält anschließend das Original.
Richtlinien
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?