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>
- Options Multiviews muss hier aktiviert werden (explizit, siehe Apache-Dokumentation)
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®
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch für seriöse Agenturen.