HTTP Cache-Verhalten
2007-08-18 16:40
Da:Sourcerer
Folgende Situation: Ich schraube gerade an einer Seite herum, die monatlich 80.000 Page Impressions hat. Der Großteil der Seite wird dynamisch generiert. Dazu habe ich mir dann mal gedacht, dass ich ja abfragen kann, wann eine Seite das letzte mal aktualisiert wurde und dem Client ggf. via HTTP Satuscode 304 mitteilen, dass sich seit dem letzten Laden nichts geändert hat um so einiges an Traffic und DB-Belastung einzusparen.
Nun war's nicht weiter schwer, dem Client einen ETag- und Last-Modified-Header mitzugeben und entsprechend die Request-Header If-None-Match bzw. If-Modified-Since auszulesen und zu verarbeiten. Nur: Einige Browser *hust*msie*hust* scheinen sich dann generell lieber ihres Caches zu bedienen und fragen erst gar nicht ab, ob die Seite sich geändert hat.
Ich habe jetzt ein wenig herumexperimentiert, komme aber zu keinem befriedigenden Ergebnis. Inzwischen gebe ich dem Client folgendes noch mit auf den Weg:
Irgendwelche Ideen, wie das noch zu retten ist? ich stehe echt kurz davor, den Kram einfach sein zu lassen.
Nun war's nicht weiter schwer, dem Client einen ETag- und Last-Modified-Header mitzugeben und entsprechend die Request-Header If-None-Match bzw. If-Modified-Since auszulesen und zu verarbeiten. Nur: Einige Browser *hust*msie*hust* scheinen sich dann generell lieber ihres Caches zu bedienen und fragen erst gar nicht ab, ob die Seite sich geändert hat.
Ich habe jetzt ein wenig herumexperimentiert, komme aber zu keinem befriedigenden Ergebnis. Inzwischen gebe ich dem Client folgendes noch mit auf den Weg:
Expires: -1
Cache-Control: must-revalidate, proxy-revalidate, private, max-age=0, s-maxage=0, post-check=0, pre-check=0
Irgendwelche Ideen, wie das noch zu retten ist? ich stehe echt kurz davor, den Kram einfach sein zu lassen.