Computing-Themen

Anleitung GZIP-Kompression von Webseiten über PHP

Anleitung zum Komprimieren von HTML- oder PHP-Dokumenten mit der GZIP-Kompression.


Nahezu alle Browser unterstützen seit vielen Jahren die Gzip-Kompression. Die Anwenderseite ist also bestens auf diese Webseiten-Komprimierungstechnik vorbereitet. Nun müssen Sie nur noch Ihren Webspace entsprechend anpassen. Wie das auf einfachste Art und Weise geschehen kann, wird hier beschrieben.

1.0 Was ist die GZIP_Kompression?

Gzip ist ein Kompressions-Algorhythmus, welcher ähnlich wie das RAR- oder ZIP-Format sehr verbreitet ist. Es lassen sich bei Aufruf eines Web-Dokuments über die GZIP-Kompression etwa vierzig bis neunzig Prozent des Datenvolumens einsparen. Das spart nicht nur zu übertragende Daten ein. Zugleich werden die Dokumente schneller angezeigt. Das läßt sich in den Grafiken von Google Analytics© sehr schön nachvollziehen.

Eine Bild-Datei allerdings ist im JPG- oder GIF-Format bereits komprimiert. Dort bringt GZIP nicht mehr große Einsparungen. Andererseits können Sie Ihre Bilder in besserer Qualität, also mit höherer Auflösung ins Web stellen. Durch die GZIP-Komprimierung werden diese ebenso schnell auf dem Besucher-Rechner angezeigt wie von vornherein stark komprimierte Bilder.

Alle anderen Daten eines Webseiten-Dokuments lassen sich jedoch hervorragend verkleinern, weil viele ihrer Bestandteile wie Tags etc. mehrfach vorkommen. Und weil diese dann um soviel kleiner als das Original sind, braucht es vor allem für Dial up und ISDN-User signifikant weniger Zeit zum Übertragen.

Die dominierenden Apache und IIS Web-Server, auf denen die Domains gehostet sind, erlauben eine serverseitige Gzip- oder Deflate-Komprimierung. Die gesparte Bandbreite geht hierbei allerdings zu Lasten der Server-CPU, weil sie das Umrechnen übernimmt. Dies ist normalerweise unproblematisch, weil in der Regel nur einfach zu komprimierende HTML-, CSS- und PHP-Textinhalte komprimiert werden. Zudem wird die Komprimierung nur dann durchgeführt, wenn der Besucher-Browser oder Suchmaschinen-Crawler sie unterstützt. Wenn Ihre Server-CPU jedoch durch die Bereitstellung dynamischen Contents schon stark belastet ist, könnte eine Komprimierung des Contents nachteilig sein. Besser ist daher eine clientseitige Gzip-Komprimierung, welche den Server unbeteiligt läßt..

Gzip ist wegen seiner Prüfsumme und seines vollständigen Headers eine robustere Kodierung als Deflate - sie funktioniert immer. Trotz ansonsten weitgehend ähnlicher Komprimierungsalgorithmen.

2.0 Wie wird die GZIP-Kompression implementiert?

2.1. Drei verschiedene Wege, um GZIP-Komprimierung zu aktivieren

Vorweg: Nahezu alle neuen und älteren Browser unterstützen die GZIP-Kompression. Und die ganz alten Browser, welche GZIP nicht unterstützen, laden die Webseite umkomprimiert vom Webspace. So oder so - Ihre Dokumente werden vollständig angezeigt.

Es gibt derzeit drei verschiedene Wege, um die GZIP-Komprimierung zu implementieren. Doch zwei dieser Methoden verwenden "mod_gzip" - dies ist eine Variante, die extrem schwer einzurichten ist. Entweder würden hierbei alle Dokumente beim Aufruf komprimiert werden. Oder man speichert zwei verschiedene Versionen des Dokuments auf dem Webspace - einmal komprimiert oder unkomprimiert, beispielsweise index.html und index.gz. Browser, die GZIP unterstützen, würden nur die ".gz"-Datei laden. Bei der letzteren Variante ist also die Aktualisierung und Pflege von Daten sehr aufwendig, weil nach jedem Hochladen eine nervtötende manuelle Komprimierung erfolgen müsste. Zudem müssten Sie bei einem Wechsel des Webspace-Anbieters den Apache-Server komlett neu einrichten.

Diese vielen Nachteile entfallen mit der dritten Variante: GZIP via PHP. Es ist so leicht einzurichten, dass Fehler unmöglich sind. Setzen Sie hierzu ganz an den Anfang eines jeden HTML-Dokuments sowie eines jeden PHP-Dokuments Ihrer Webseite, das komprimiert werden soll, ohne vorstehende Leerzeichen den folgenden PHP-Code:

Ohne weitere Einrichtungsschritte werden jetzt schon alle PHP-Dokumente bei Aufruf durch den Besucher komprimiert. Um auch HTML-, Javascript- und CSS-Dateien zu komprimieren, muss erstens eine weitere Zeile in den PHP-Code und zweitens der Server diese parsen - d.h. möglicherweise enthaltenen PHP-Code abarbeiten. Das erreichen Sie auf die nachfolgend beschriebene Art und Weise.

2.2 PHP-Code in HTML-Dokumenten abarbeiten lassen

Sie könnten zwar mit einer kleinen Änderung der Dateiendung von .HTM und .HTML auf .PHP erreichen, dass der Server den in HTML-Dokumenten implantierten PHP-Code abarbeitet. Doch hätte dies den Nachteil, dass zum einen PHP-seiten oft schlechter in Suchmaschinen gerankt werden. Zum anderen könnte eine darin erreichtes gutes Ranking verlorengehen.

Der Königsweg ist daher, den Server durch eine Anweisung in der Datei ".HTACCESS" (mit Punkt vorweg!) im Hauptverzeichnis Ihres Webspace dazu zu bringen, auch ".HTM", ".HTML" und ".CSS"-Dateien zu parsen. Das geht so:

Wenn die Datei im Hauptverzeichnis Ihres Webspace bereits existiert, kopieren Sie diese via FTP auf Ihren Rechner und öffen sie. Andernfalls legen Sie die Datei neu an. Dann kopieren Sie eine der folgenden Codezeilen-Varianten in die Datei hinein (nur einfachen Texteditor verwenden, nicht MS-Word o.ä.):

Beispiel:
Syntax in der Datei ".HTACCESS" für Provider 1&1®:
AddType x-mapp-php5 .php .htm .html .css .js
AddHandler x-mapp-php5.5 .php .htm .html .css .js

Zwei weitere gebräuchliche Syntaxen für die Datei ".HTACCESS" vieler anderer Provider:
AddType application/x-httpd-php php php5.5 php4 html htm css js
AddHandler x-mapp-php5.5 .php .htm .html .css .js

AddType application/x-httpd-php .html .htm .css .js
AddHandler x-mapp-php5.5 .php .htm .html .css .js

Die jeweils zweite Zeile ist zumindest beim Provider 1und1® zwingend erforderlich, um PHP-Code in CSS- und Javascript-Dateien abarbeiten zu können.

Ihr Provider könnte jedoch eine andere Syntax dieser Zeile erfordern. Nach meiner Kenntnis benötigt nur der Provider 1und1© eine andere Syntax als die meisten anderen Provider. Sollte also der PHP-Code in Ihren HTM-Dokumenten nicht abgearbeitet werden, fragen Sie bitte Ihren Webspace-Anbieter nach der für seinen Server erforderlichen Syntax.

Möchten Sie sehen, wie eine mit GZIP komprimierte Seite aussieht? Sowohl diese als auch alle anderen Seiten sind auf diese Weise GZIP-komprimiert.

2.3 GZIP-Kompimierung für CSS-Dateien

Setzen Sie den folgenden PHP-Code ohne vorstehende Leerzeichen ganz an den Anfang Ihrer CSS-Dateien:

Mit den Vorarbeiten aus dem vorigen Kapitel sollte die Komprimierung damit funktionieren. Bei Javascript-Dateien verfahren Sie ebenso, nur muss der Headertyp entsprechend auf Javascript geändert werden.

2.4 Überprüfen, ob GZIP-Kompimierung funktioniert

Laden Sie die zu prüfende Seite in den Firefox-Browser. Unter dem Menüpunkt "EXTRAS" gehen Sie auf "SEITENINFORMATIONEN". Dort steht die Größe des über das Internet übertragenen Dokuments. Wenn diese Angabe wesentlich kleiner ist als die originale Dateigröße im Webspace oder auf Ihrem Rechner, funktioniert die GZIP-Komprimierung. Diese Methode macht nur Sinn bei Seiten ohne extern eingebundene Bestandteile wie externe Codeblöcke, externes CSS und Javascript sowie ohne Bilder.

Oder prüfen Sie Ihre Domain oder Unterseite auf GZIP-Komprimiereung hier online (öffnet neues Fenster).



Gern können Sie auf diese Seite verlinken:
Leider sind die folgenden Hinweise nötig:
Aus gegebenen Anlass vorab ein Wort zum Copyright: Webseitenbetreiber dürfen entsprechend des Zitierrechts EINEN BIS ZWEI SÄTZE dieser Unterseite UMFORMULIERT und UNTER VERLINKUNG DER QUELLE auf ihre Seite übertragen, um eine Zurückstufung im Google-Suchmaschinenranking wegen duplicate content zu vermeiden: [André Chinnow, Internet: "", Hamburg 2009]
Achtung: Für die Richtigkeit und Vollständigkeit der hier gegebenen Hinweise wird keine Gewähr oder Haftung übernommen. Sie basieren auf Erfahrungen von Nicht-Fachleuten. Bevor Sie diese aufgreifen, klären Sie vor der Anwendung der hier gegebenen Informationen mit Fachleuten ab, ob Ihnen daraus Nachteile entstehen können. Den Herstelleranweisungen verwendeter Produkte ist unabhängig von den nachfolgenden Ausführungen zu folgen. Auch stellen die Aussagen zu Rechtslagen keine Rechtsberatung dar, sondern spiegeln nur eine persönliche Meinung des Verfassers wieder, welche falsch sein kann.

Zusatzstoffe
Liste mit
Risikobewertung


E-Nummerliste der Lebensmittel-Zusatzstoffe und deren Gefährlichkeit





Hinter den
Kulissen
unserer Welt


Einführung in die Metaphysik





Frei
von
Allergien


Allergien:
Beschwerdefrei ohne Medikamente





Zitate
und
Weisheiten


Zeitkritische Zitate & kleine Weisheiten





Gefährliche
Lebensmittel-
Zusatzstoffe


E-Nummerliste der Lebensmittel-Zusatzstoffe mit Risikobewertung