komprimierter Content & .htaccess
Fabulit
- webserver
Guten Abend liebe Forumsgemeinde,
ich benötige eure Hilfe beim Einstieg in das Thema komprimierter Content. Meine Forums- und Google-Suche brachte schon eine Menge Teilinformationen, aber ich vermag das Puzzle nicht zusammenzufügen.
Mein Stand: ich habe eine "aktive" .htaccess-Datei. Dessen kann ich mir sicher sein, da html-Dateien geparsed werden. In dieser .htaccess-Datei füge ich die folgende Zeile hinzu:
AddOutputFilterByType DEFLATE application/javascript
und hoffe komprimiertes Javascript ausgeliefert zu bekommen. Dem ist aber nicht so (geprüft mit Live HTTP headers u. a.). Die Header stimmen mMn auch: Accept-Encoding: gzip,deflate. Und nun weiß ich nicht wirklich weiter. Fehlt das entsprechende Modul? Kommt mir eventuell das Cacheing irgendwie in die Quere? Mir fehlen einfach die Zusammenhänge.
Kennt jemand eine gute Quelle, wo ich mich etwas umfassender informieren kann? Oder weiß jemand typische Fehlerquellen, die ich mal kontrollieren sollte?
Gruß Fabulit
PS: Ich verwende PHP Version 5.2.13-0.dotdeb.0
hi,
Kennt jemand eine gute Quelle, wo ich mich etwas umfassender informieren kann? Oder weiß jemand typische Fehlerquellen, die ich mal kontrollieren sollte?
Teste es doch einfach mal selbst, das ist keine Hexerei.
use IO::Socket;
my $sock = IO::Socket::INET->new('test:80') or die "kein sock";
# Request feuern
print $sock "GET / HTTP/1.1\n";
print $sock "Accept-Encoding: gzip,deflate\n";
print $sock "Host: test\n\n";
# Response erhalten
binmode STDOUT;
print $_ while <$sock>;
.... und schon siehst Du, ob alles funktionackelt ;)
Hotti
# Request feuern
print $sock "GET / HTTP/1.1\n";
print $sock "Accept-Encoding: gzip,deflate\n";
print $sock "Connection: Close\n"; # weil HTTP/1.1
print $sock "Host: test\n\n";
> # Response erhalten
> binmode STDOUT;
> print $_ while <$sock>;
>
.... und schon siehst Du, ob alles funktionackelt ;)
Also die Response ist komprimiert, nicht mehr lesbar. Zum Testen nimm den Accept-Encoding Header mal raus.
- ApacheModul mod_deflate laden
N'Abend Hotti.
Ich betreibe keinen eigenen Server. Daher bin ich, nach meinem Verständnis, auf vom Anbieter zur Verfügung gestellte Module angewiesen. Wo müsste denn *was* bei phpinfo() zu finden sein?
Gruß Fabulit
hi,
Ich betreibe keinen eigenen Server. Daher bin ich, nach meinem Verständnis, auf vom Anbieter zur Verfügung gestellte Module angewiesen. Wo müsste denn *was* bei phpinfo() zu finden sein?
LoadedModules
core mod_win32 mpm_winnt http_core mod_so mod_actions mod_alias mod_asis mod_auth_basic mod_authn_default mod_authn_file mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindex mod_cgi mod_deflate mod_dir mod_env mod_include mod_isapi mod_log_config mod_mime mod_negotiation mod_rewrite mod_setenvif mod_php5
---> mod_deflate <-----
Hotti
Eine Kategorie "Loaded Modules" konnte ich hier nicht ausmachen. Allerdings fand ich in den FAQs die Aussage, dass Änderungen an der php.ini nicht per .htaccess durchführbar seien. Kann mir vielleicht einfach eine solche Beschränkung im Wege stehen? Und wieso kann ich eigentlich AddHandler nutzen? Das widerspricht doch der Aussage der FAQs, oder bin ich völlig auf dem Holzweg...
Ich werde mich mal mit meinem Hoster in Verbindung setzen müssen. Auf meinem Localhost lässt sich alles wunderbar umsetzen...
Für heut erstmal gute Nacht
Ich werde mich mal mit meinem Hoster in Verbindung setzen müssen.
Gute Idee.
Auf meinem Localhost lässt sich alles wunderbar umsetzen...
Dös is immer so ;)
Zum Thema/Test:
Der UserAgent sendet den Request-Header
Accept-Encoding: gzip,deflate
Wenn dann der Server die Header
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 4711
sendet, kannst Du davon ausgehen, dass die Response gezippt ist. Genauer siehst Du es mit einem NetzwerkanalyseTool wie Wireshark, wo Du in den Message-Body reinschauen kannst oder mit einem kleinen Scipt (IO::Socket).
Btw., das SELF-Forum zippt auch :)
Hotti
Auf meinem Localhost lässt sich alles wunderbar umsetzen...
Dös is immer so ;)
»»
Und selbst diese Aussage war voreilig :-) Guten Morgen,
ich kann die Problematik jetzt deutlich eingrenzen. Ich teste lokal, wo ich mir sicher bin, dass mod_deflate zur Verfügung steht. Und ich nehme erfolgreich Einfluss darauf, ob html komprimiert ausgeliefert wird.
Meine neueste Erkenntnis; ich trickse mich hin und wieder mit Cacheing selbst aus. Ich wollte mein Stylesheet komprimiert ausliefern, welches nicht wirklich klappte. Ich zweifelte schon an der Korrektheit dieses einfachen mime-Types, bis ich eine Änderung an der CSS-Datei vornahm. Und schon bekam ich ein komprimiertes Dokument.
Ich werde mich also erstmal ein wenig mich cache-control auseinandersetzen. Aber so langsam fügen sich die Teile des Puzzles zu einem schlüssigen Bild. Vielen Dank schon mal für die Orientierungshilfe.
Gruß Fabulit
hi,
Ich werde mich also erstmal ein wenig mich cache-control auseinandersetzen. Aber so langsam fügen sich die Teile des Puzzles zu einem schlüssigen Bild. Vielen Dank schon mal für die Orientierungshilfe.
Sehr schön, blöder Cache aber auch ;)
Interessante Header:
Request:
If-modified-since
if-none-match
Response:
last-modified
etag
Status vom Webserver, wenn Cache greift (eines von beiden obenstehend)
304 Not Modified
Tool: Live HTTP Headers, sehr anschaulich, mache Dich vertraut mit dem Teil.
Viele Grüße,
Hotti