Webserver · 2 min read · Sep 13, 2025
mod_gzip - komprimierte Inhalte vom Apache-Webserver bereitstellen - Seite 2
Autor: Michael Schröpl
Kommunikation in HTTP
Für die Übertragung von Webinhalten zwischen Server und Client wird das Hypertext Transfer Protocol (HTTP) verwendet.
Die Kommunikation funktioniert folgendermaßen:
- Der Client sendet eine Anfrage an den Server. Diese Anfrage besteht hauptsächlich aus HTTP-Headern, die beschreiben, welche Daten der Client empfangen möchte.
In gewissem Maße kann der Client den Dateninhalt direkt beeinflussen (zum Beispiel durch die Angabe der URL der angeforderten Seite); andere Teile seiner Anfrage liefern dem Server zusätzliche Informationen darüber, welche Art von Daten der Client bevorzugt empfangen würde, falls der Server mehrere Datenvariationen anbieten muss. - Der Server bewertet alle verfügbaren Informationen, um zu entscheiden, welche Daten mit welchen Attributen angefordert wurden, und versucht anschließend, diese Daten in einer Form bereitzustellen, die am besten zur Anfrage des Clients passt.
Dieses Datenpaket enthält wiederum HTTP-Header, aber hauptsächlich Daten - die dennoch nur teilweise interpretierbar sind, ohne die HTTP-Header zu berücksichtigen.
Der zweite Aspekt der Bestimmung des gewünschten Inhalts wird in seiner allgemeinen Form als Inhaltsverhandlung bezeichnet. Die Bereitstellung von komprimierten Seiteninhalten in der hier beschriebenen Form basiert ebenfalls auf diesem allgemeinen Prinzip.
Kodierungen in HTTP
HTTP 1.1 definiert im Kapitel 3.5. sogenannte Inhaltskodierungen, die von jedem Browser, der diesem Standard entspricht, unterstützt werden sollten.
Für die Kommunikation zwischen Server und Client haben diese Kodierungen folgende Bedeutung:
- Dieser Client kann eine Liste akzeptierter Inhaltskodierungen im HTTP-Header Accept-Encoding: angeben. Die spezielle Kodierungsidentität (die eine Kodierung beschreibt, die den Inhalt nicht ändert) wird implizit als Standardwert verwendet.
- Der Server sollte den Inhalt des angeforderten Dokuments unter Verwendung einer vom Client akzeptierten Kodierung bereitstellen.
Wenn der Server dazu nicht in der Lage ist, sollte er die Anfrage mit dem Statuscode 406 Nicht akzeptabel ablehnen; dennoch kann er Inhalte bereitstellen, die für diesen Client gemäß seiner Anfrage nicht akzeptabel sind (und deren Verarbeitung möglicherweise unlösbare Probleme für den Client verursachen könnte).
Der Apache-Webserver verwendet in dieser Hinsicht eine defensive Strategie: Wenn er eine Seite nicht gemäß den Anforderungen des Clients bereitstellen kann, aber mehrere andere Varianten im Angebot hat, generiert er dynamisch ein HTML-Dokument, das eine kurze Beschreibung der Situation und Links zu allen betreffenden Dokumenten enthält. (Dies ist auch der Fall, wenn dieses Dokument von einem Browser angefordert wird, der keine der Sprachen de und en akzeptiert, die ich gemäß seiner aktuellen Konfiguration unterstütze; ich habe absichtlich keinen Standardwert definiert, um dieses Problem den Lesern in anderen Sprachen dieser Seiten bewusst zu machen.)
Wenn ein Server eine Datei mit einer Kodierung an einen Client bereitstellt, der nicht in der Lage ist, diese zu verarbeiten, könnte dieser Client möglicherweise nicht in der Lage sein, sie korrekt zu verarbeiten.
Ursprünglicher Standort dieses Dokuments:
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.