Reina Schaukrug: ETAG und "Cache-Control: must-revalidate" sind hier wohl besser.

Beitrag lesen

Es gibt auch andere Optionen, Doku steht hier

Alles richtig. Aber da fehlt was. Denn das erklärt nur wie man die Gültigkeit des Caches ganz verneint oder zeitlich begrenzt.

Es gibt aber noch die im konkreten Fall wohl effizientere Möglichkeit den Client und alle Proxys anzuweisen, anhand des ETAGS vom Server überprüfen zu lassen ob die gecachte Datei noch gültig ist. Damit lässt sich das Datentransfervolumen effektiver und sachlich sinnvoller beschränken als mit einem reinem Zeitrahmen oder gar dem Abschalten des Caches.

Vorliegend würde ich wegen der doch recht statischen Inhalte eher auf einen ETAG (den der IIS berechnen und als Header senden kann) und den HTTP-header Cache-Control: must-revalidate; max-age=604800 setzen. Der ist hier erklärt. Dabei kann man mit der Gültigkeit (60480 Sekunden = 1 Woche) sogar höher gehen.

Das Abschalten des Caches lohnt sich eigentlich nur wenn man sehr variable Daten abholt (dann lohnt sich das nicht) und/oder der Ersteller der Software nicht bereit ist, den ETAG aus der Datenbasis zu berechnen und die Header durch seine Software zu setzen. Bei den statischen PDFs aus dem Dateisystem kann das auch der IIS quasi ganz alleine.