GZIP Kompression / GZIP Komprimierung

Da die meisten Browser eine GZIP Komprimierung unterstützen, ist es empfehlenswert auch als Webmaster auf diese Technik zu setzen. Der klare Vorteil der GZIP Komprimierung ist eine Reduzierung der Ladezeiten, denn die zu ladenden Dateien sind aufgrund der Komprimierung wesentlich kleiner.
Für den Einsatz der GZIP Kompression auf der eigenen Webseite gibt es einige Varianten, die nachfolgend genauer vorgestellt werden.

1. GZIP mit PHP

Um die eigenen Webseiten mit GZIP zu komprimieren reicht schon ein kleiner Befehl aus. Dazu muss am Anfang einer jeden HTML- oder PHP-Datei der nachfolgende Code eingebunden werden. Anschließend werden alle Dokumente/Dateien, in denen dieser Code eingebunden wurde, bei einem Aufruf durch einen Besucher der Seite automatisch komprimiert.

<?php ob_start("ob_gzhandler"); ?>


Mit dem folgenden Code wird zusätzlich noch geprüft ob PHP “gzip” unterstützt wird, sowie ob die Option –with-zlib installiert ist.

<?php
if(extension_loaded("zlib") AND strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip"))
@ob_start("ob_gzhandler");
?>


Wenn die GZIP Kompression mittels ob_handler funktioniert, kann dies auch einmalig in der .htaccess Datei eingeschaltet werden, und braucht nicht in alle einzelnen Dateien eingefügt werden. In diesem Fall reicht es auch den folgenden Code in die .htaccess Datei einzufügen:

php_value output_handler ob_gzhandler

2. .htaccess und mod_deflate

Mit einer .htaccess Datei und auf dem Webserver installiertem und aktiviertem Modul mod_deflate lassen sich Dateien mit den Endungen .js, .css, .html und .xml komprimieren. Sollte diese Variante nicht funktionieren, könnte es ratsam sein bei dem Hoster nachzufragen ob das Server-Modul mod_deflate aktiviert ist, bzw. ob es nachträglich aktiviert werden kann.
Wer möchte der kann auch weitere Dateien, wie etwa .jpg, .png oder .gif versuchen mittels dieser Methode zu komprimieren. Die Komprimierung von Bildern bringt meisten jedoch keinen sichtbaren Erfolg.

<IfModule mod_deflate.c>
<FilesMatch "\\.(js|css|html|xml)$">
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>

3. Dateien manuell komprimieren

Wenn der Webserver keine automatische GZIP Komprimierung unterstützt, dann bleibt nur der Weg der manuellen Komprimierung. Bei dieser Variante müssen alle großen Dateien (Javascript und CSS) selbst komprimiert werden. Die neu erstellten und komprimierten Dateien müssen den gleichen Dateinamen besitzen wie die Originaldateien, nur mit dem Unterschied der .gz oder .jgz Endung.

Dann werden diese neuen und gepackten JS und CSS Dateien auf den Server geladen, parallel zu den ungepackten Dateien. Nun muss der nachfolgende Code in die .htaccess Datei eingefügt und ebenfalls hochgeladen werden. Wenn der Server .htaccess unterstützt, dann wird anstelle der Originaldateien die gepackten Dateien ausgeliefert. Dies spart Traffic und verkürzt die Ladezeit der Webseite.

RewriteEngine on
RewriteCond %{HTTP:Accept-Encoding} .*gzip.*
RewriteRule ^js/(.*)\.js$ /js/$1.js.gz [L]
RewriteRule ^css/(.*)\.css$ /css/$1.css.gz [L]
AddEncoding x-gzip text.gz

Gleichzeitig muss der Quellcode dahingehend geändert werden, dass nun auch die neuen GZIP JavaScript und CSS Dateien anstelle der alten in dem HEAD-Bereich der Webseite aufgerufen werden.
Fertig. Damit sollte der Punkt GZIP-Komprimierung von JS und CSS Dateien abgeschlossen sein.