FloM hat geschrieben:Ich dachte dabei würde einfach dem Browser/Proxy übermittelt, wie alt das Bild ist, damit dieser selbst entscheiden kann, ob er es neu laden muss oder nicht?
Das ist so bei statischen Dateien, mit Bildern per se hat das nichts zu tun. Bei statischen Dateien kann der Webserver das letzte Änderungsdatum einfach ermitteln (verwaltet das Betriebssystem in den Dateiattributen), sendet es entsprechend per Last-Modified an den Browser und kümmert sich auch um daran anschließende bedingte Anfragen, d.h. jene, bei denen der Browser sagt, er möchte die Daten nur haben, wenn sie seit seiner letzten Anfrage geändert wurden.
Wozu das ganze Spektakel mit der manuellen Festlegung? Oder verstehe ich hier was falsch?
Hier geht's um zwei Dinge:
1. Die letzte Änderung (Last-Modified, If-Modified-Since). Bei statischen Dateien macht das, wie beschrieben, komplett der Webserver, bei Skripten musst du dich jedoch selbst darum kümmern, denn was in der Skriptdatei drinsteht (sieht der Browser nie) und was es an den Browser ausgibt (relevant für des Browsers Cache), sind natürlich zwei Paar Schuhe.
2. Das Verfallsdatum (Expires). Das Verfallsdatum bestimmt, bis wann der Browser
überhaupt nicht mehr beim Server anfragen muss, d.h. selbst wenn eine Datei inzwischen geändert wurde, bekommt der Browser das (je nach Browser-Einstellung) nicht mit, solange er die Daten noch im Cache hat und der Verfall nicht erreicht ist. Bei Punkt 1 sind hingegen immer noch kurze Prüfanfragen an den Server vorgesehen.
Der Webserver kann nicht wissen, für wie lange deine Daten brauchbar sind, daher musst du diese Angabe in jedem Falle selbst erledigen.
Ich bin echt schockiert, seit ich weiß, dass unsere sämtlichen Bilder anscheinend nicht gecached werden.
Nun, da müsste zuerst geprüft werden, ob es nur anscheinend so ist oder tatsächlich.