Hi,
ich experimentiere gerade ein bisschen mit dem Modul mod_asis vom Apachen (2.2) herum.
Bilder, CSS, Scripte damit ausliefern, alles kein Problem, wenn die passenden HTTP-Header in die jeweiligen Dateien mit hineingeschrieben werden.
Nur, wie kann man damit Caching mittels Last-Modified/If-Modified-Since implementieren?
Wenn ich einen Status
Status: 200 OK
als ersten Header sende, dann ist's mit dem Caching natürlich Essig - trotz Last-Modified-Header. Das ist ja auch recht logisch, schließlich steht der Statuscode 200 OK fest in der Datei mit drin.
Kann ich den Apachen irgendwie dazu bewegen, wenn der Client einen If-Modified-Since im Request mitschickt, zuerst das Änderungsdatum der Datei auf der Festplatte zu checken, und nur mit einem 304 zu antworten und nicht den Dateiinhalt auszuliefern, wenn die Bedingungen entsprechend erfüllt sind ...?
(Die Frage mag eher theoretischer Natur sein und die Gegenfrage „wozu willst du das überhaupt machen?“ provozieren; aber mich würde trotzdem interessieren, ob sich das bewerkstelligen liesse.)
Anbei ein Beispiel, wie ich ein PNG gespeichert habe, um es per mod_asis auszuliefern:
Status: 200 OK
Last-Modified: Mon, 21 Jun 2010 16:12:43 GMT
Cache-Control: must-revalidate
Content-Length: 21221
Connection: Keep-Alive
Content-Type: image/png
‰PNG
[...]
Das Datum im Last-Modified-Header entspricht dabei dem Modified-Datum auf der Festplatte. (Dateisystem: NTFS, Win 7)
Und für das Handling dieser Dateien durch mod_asis sorgt eine .htaccess-Datei mit dem Inhalt
<Files "*">
ForceType httpd/send-as-is
</Files>
MfG ChrisB
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?