2.9 hat geschrieben:Beschäftige mich gerade etwas mit dem Thema Webseitenkomprimierung und habe 2 verschiedene Möglichkeiten gefunden um eine Webseite zu komprimieren.
Um es vorweg zu nehmen: Du hast die beste übersehen.
per PHP zu Beginn eines PHP-Dokuments mit diesem Aufruf:
ob_start( 'ob_gzhandler' );
oder die Komprimierung per .htaccess zu aktivieren
php_flag zlib.output_compression On
Beides zusammen funktioniert anscheinend nicht.
Meine Frage ist wo sind die Unterschiede?
Es sind nur unterschiedliche Wege, das Gleiche einzuschalten. Der zweite ist sicher bequemer, weil man nicht im Quellcode sämtlicher Seiten rumfuhrwerken muss, und ich meine mich zu erinneren, dass der erste in früheren PHP-Versionen irgendwie kaputt war, aber ansonsten tut sich das nix. Insbesondere ist die Komprimierung in beiden Fällen gleich, und in jedem Falle funktioniert das nur mit PHP.
Habe gelesen, dass die htaccess Methode wohl die häufigere sei.
Ja, aber ich möchte behaupten, nicht die, die du oben beschrieben hast. Wenn per .htaccess die HTTP-Komprimierung eingeschaltet wird, dann üblicherweise die, die bereits im Apache-Webserver in Form von
mod_deflate eingebaut ist. mod_deflate wird von Haus aus beim Apache 2 mitgeliefert, du brauchst lediglich die Zeile
AddOutputFilterByType DEFLATE text/html text/plain text/xml in die oberste .htaccess einfügen, dann werden alle besagten Textarten vor der Übertragung komprimiert, egal ob sie von PHP ausgegeben werden, von SSI zusammengestückelt oder als reine Datei vorliegen. Die PHP-interne Komprimierung ist überflüssig.
Du solltest allerdings vorher prüfen, ob dein Server die Komprimierung nicht eh schon aktiviert hat (siehe unten); es ist sinnlos, sie zweimal zu aktivieren.
Wenn ich die Webseite dann mit Yslow teste scheint Yslow keine der beiden Komprimierungsmethoden zu erkenn. Obwohl omprimiert wird.
Yslow kenne ich nicht, aber für die Komprimierung des HTTP-Verkehrs braucht es immer zwei: Den Server
und den Client. Wenn Yslow nicht meldet, dass es Komprimierung unterstützt, wird der Server auch keine komprimierten Daten senden. Darüber hinaus ist zu beachten, dass die beiden Formen gzip und deflate bei passender Quelle zwar gut und gerne bis zu 90% eindampfen können, aber bei einer schnellen Leitung springt der Unterschied zwischen 3000 Bytes und 300 Bytes nicht unbedingt sofort ins Auge (was nicht bedeuten soll, dass die Komprimierung "eh nix bringt"!).
Benutze zum Testen lieber
LiveHTTPHeaders (Firefox-Erweiterung). Die aktive Komprimierung wird im HTTP-Kopf in der Zeile Content-Encoding angezeigt, entweder steht dort gzip oder deflate. Ob der Client (hier: Webbrowser) komprimierte Daten unterstützt, meldet er übrigens in der Zeile Accept-Encoding, bei Firefox steht dort entsprechend "Accept-Encoding: gzip,deflate".