gzip mod_expires.c htaccess
Wolfgang
- webserver
Hi,
kann mir mal jemand was zu .htaccess erklären?
Da steht jetzt folgendes (für *.html.html und *.html.gz) drinnen:
Options +Multiviews
AddEncoding gzip .gz
Sollte doch schon reichen, und es ist dann richtig AddType text/html .gz wegzulassen?
Im Archiv hab ich noch was gefunden, aber den Zusammenhang nicht ganz verstanden:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "now plus 1 month"
</IfModule>
Hat doch mit gzipten css-files nichts zu tun oder doch?
thx,
Wolfgang
Moin!
Im Archiv hab ich noch was gefunden, aber den Zusammenhang nicht ganz verstanden:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "now plus 1 month"
</IfModule>Hat doch mit gzipten css-files nichts zu tun oder doch?
Das hat miteinander überhaupt nichts zu tun, weil bei gezippten Files der Mime- Typ ein ganz anderer ist.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hi,
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "now plus 1 month"
</IfModule>Hat doch mit gzipten css-files nichts zu tun oder doch?
Das hat miteinander überhaupt nichts zu tun, weil bei gezippten Files der Mime- Typ ein ganz anderer ist.
Also .css.gz? Es war nicht im Archiv, sondern google, ich komm aber mit dem Zusammenhang nicht ganz klar.
http://groups.google.de/groups?hl=de&lr=&ie=UTF-8&selm=b2mkna.8o.1%40news.christoph.schneegans.de
Was passiert bei dem Eintrag? Da wird abgefragt ob der Server mod_expires.c hat, wenn ja dann wird es eingeschaltet, und gibt einen Zeitpunkt in 1 Monat aus. Wer richtet sich danach, Browsercache oder Proxyserver?
cu,
Wolfgang
Moin!
Das hat miteinander überhaupt nichts zu tun, weil bei gezippten Files der Mime- Typ ein ganz anderer ist.
Also .css.gz? Es war nicht im Archiv, sondern google, ich komm aber mit dem Zusammenhang nicht ganz klar.
Komplett war das wohl so zu finden:
Options +MultiViews
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "now plus 1 month"
</IfModule>
<IfModule mod_mime.c>
AddEncoding gzip .gz
</IfModule>
Wenn das Modul expires geladen werden konnte:
Der Ablauf der Dateien im css-Format wird im HTTP-Header auf jetzt + 1 Monat gesetzt.
Ist das mime- Modul geladen:
Es wird der encoding- Typ gzip für alle Dateien gesetzt, die auf .gz enden.
Was bewirkt das?
Unter der Voraussetzung, daß style.css und style.css.gz existieren wird an die Browser, die mit (gzip-) komprimierten Daten klarkommen, die Datei style.css.gz gesendet: diese packt der Browser aus. Alle anderen Benutzeragenten bekommen die unkomprimierte Datei.
Der Webserver sendet im http-header die Information, wann die Datei abläuft. Dem entspricht zum Beispiel das http-equiv "expires". Dieser besagt, wann die datei abläuft, das wendet sich an Browser und Proxy. Warum sollten die eine abgelaufene Datei aufheben?
Welchen Content- Typ der Apache hier annimmt kann ich nicht sagen, bei mir nimmt er den Server- Standard (text/html). Jedenfalls nimmt er nicht: "application/gzip". Wichtig ist das zu wissen, weil genau davon abhängt, ob er die Direktive zum Senden des expire- header anwendet. Ach ja untern findest Du auch, daß der Server zwischen Content-Type und Encoding-Type unterscheidet. Logisch ist hinsichtlich der Unterscheidung ob expire senden oder nicht die Entscheidung für den Content-Type.
einige Mime-Types: http://selfhtml.teamone.de/diverses/mimetypen.htm
Was der Server letztendlich aussendet kannst Du nach Aktivierung der Module und Eintrag der Einstellungen (+ Neustart Apache) herausfinden, indem Du mit wget und der Debug- Option (-d) die Daten vom Server holst. Dann bekommst Du auch die HTTP-Header angezeigt:
Unter Windows sieht das etwa so aus:
G:>wget http://banner.fastix.de/hosts.gz -d
DEBUG output created by Wget 1.8.1+cvs on Windows.
--17:47:43-- http://banner.fastix.de/hosts.gz
=> `hosts.gz'
Resolving banner.fastix.de... done.
Caching banner.fastix.de => 212.227.118.93
Connecting to banner.fastix.de[212.227.118.93]:80... connected.
Created socket 732.
Releasing 007C48F0 (new refcount 1).
---request begin---
GET /hosts.gz HTTP/1.0
User-Agent: Wget/1.8.1+cvs
Host: banner.fastix.de
Accept: */*
Connection: Keep-Alive
---request end---
HTTP request sent, awaiting response... HTTP/1.1 200 OK
Date: Tue, 04 Nov 2003 16:47:44 GMT
Server: Apache/1.3.29 (Unix)
Last-Modified: Tue, 04 Nov 2003 14:12:13 GMT
ETag: "14d801f-1053a-3fa7b3bd"
Accept-Ranges: bytes
Content-Length: 66874
Connection: close
Content-Type: text/plain
Content-Encoding: x-gzip
Length: 66,874 [text/plain]
100%[====================================>] 66,874 79.55K/s
Closing fd 732
17:47:45 (79.55 KB/s) - `hosts.gz' saved [66874/66874]
Natürlich hab ich hier an der httpd.conf geändert. Ich war zu a) zu faul und b) auf dem Server darf ich gar nicht.
-------
Fazit: Sind die Einstellungen so getriffen, wie oben angenommen und der Browser akzeptiert komprimierte Dateien, dann wird wohl der expire- header wegen des Content-types mitgesendet, obwohl der Encoding- Typ zweifelsfrei ein anderer ist.
fastix®
http://groups.google.de/groups?hl=de&lr=&ie=UTF-8&selm=b2mkna.8o.1%40news.christoph.schneegans.de
Was passiert bei dem Eintrag? Da wird abgefragt ob der Server mod_expires.c hat, wenn ja dann wird es eingeschaltet, und gibt einen Zeitpunkt in 1 Monat aus. Wer richtet sich danach, Browsercache oder Proxyserver?
cu,
Wolfgang
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hi!
Wenn das Modul expires geladen werden konnte:
Der Ablauf der Dateien im css-Format wird im HTTP-Header auf jetzt + 1 Monat gesetzt.
Der Webserver sendet im http-header die Information, wann die Datei abläuft. Dem entspricht zum Beispiel das http-equiv "expires". Dieser besagt, wann die datei abläuft, das wendet sich an Browser und Proxy. Warum sollten die eine abgelaufene Datei aufheben?
Danke, also ExpiresByType text/css, type/css bezieht sich hier auf den Content-Type, auf eine x.css.css und auch x.css.gz. Dann Ablauf in 1 Monat, also erstmal aufheben.
In deiner Ausgabe von wget war aber wohl kein expire-header, oder hab ich was übersehen?
Und besteht doch ein Zusammenhang mit gzip, soll der Verbleib in proxy und cache für eine x.css.gz erst möglich werden, oder wäre es für gz-files eigentlich egal? Warum könnte es dem Autor des googletext wichtig gewesen sein?
cu,
Wolfgang
Moin!
Danke, also ExpiresByType text/css, type/css bezieht sich hier auf den Content-Type, auf eine x.css.css und auch x.css.gz. Dann Ablauf in 1 Monat, also erstmal aufheben.
Ja. Das denke ich auch. Dennoch prüfe das nach!
In deiner Ausgabe von wget war aber wohl kein expire-header, oder hab ich was übersehen?
Ich hab doch geschrieben, ich sei zu faul die beschriebenen Einstellungen zu testen... Ich wollte nur zeigen, was rauskommt, wenn ich eine gz-komprimierte Date runterlade. Und es gab einen prompten Unterschied zwischen Content-type und Encoding-Type...
Und besteht doch ein Zusammenhang mit gzip, soll der Verbleib in proxy und cache für eine x.css.gz erst möglich werden
Das ist zu vermuten. Wenn ich dem Apache sage: hör mal: etwas ist im Behälter/Eimer (Encoding- Typ) und er sieht einen, dann wird er ihn vermutlich zum Untersuchen des Inhalts rumdrehen, weil er weiss: der Content-Typ ist ein anderer (flüssig/Wasser oder fest/Sand)- Scheinbar aber sendet er den richtigen expire header (Haltbarkeit...) in Abhängigkeit vom vermuteten Content-Type (Herausfinden durch Weglassen von .gz und neues Überprüfen).
Wenn der Apache jedoch in dem Glaube gelassen wird .gz sei Content-Type "application/gzip" - dann wird er den Inhalt nicht untersuchen, sondern ohne Untersuchung zum Browser senden, der dann wieder das Ausführen/Speichern anbietet. Ein expire-header ist dann mit Sicherheit nicht dabei, wenn er nicht für den mime-Typ "application/gzip" festgelegt wurde...
Wie gesagt: treffe die Einstellungen und hole Dir die Dateien mal vom Server mit wget- das hat genug Optionen, Du kannst es getrost Mozilla spielen lassen. Das Ergebnis würde mich auch interessieren- gegenwärtig aber nicht sosehr, als daß ich Lust hätte einen Server umzukonfigurieren.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®