Zweiteilige Frage (Teile sind eng verwandt): Mit der Standard-OOTB-ETag-Richtlinie, die IIS7 verwendet, warum sehen wir nicht die If-None-Match/304-Interaktion als wir navigieren durch Seiten?ETags, IIS7, Kernel-Cache-Richtlinie (enableKernelCache)
Der Header zurück für eine leeren Cache-Anforderung, zum Beispiel, sind:
Content-Type image/png
Last-Modified Thu, 03 Dec 2009 15:51:56 GMT
Accept-Ranges bytes
Etag "a8a0628a3074ca1:0"
Server Microsoft-IIS/7.0
X-Powered-By ASP.NET
Date Tue, 22 Dec 2009 19:47:36 GMT
Content-Length 1780
... und noch nachfolgende Zugriffe auf der Seite gibt einen 304 Round-Trip für das Bild nicht erzeugen?
Auch die Standard applicationHost Datei für IIS7 hat die folgenden (1):
<caching enabled="true" enableKernelCache="true">
</caching>
Does enableKernelCache = 'true' auf alle statischen Dateien erweitern, können Sie von der Notwendigkeit befreien Erweiterungen registrieren explizit CacheUntilChange als Kernel Politik (2) zu gewähren:
<caching>
<profiles>
<add extension=".gif" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
<add extension=".png" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
<add extension=".js" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
<add extension=".css" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
<add extension=".jpg" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
<add extension=".jpeg" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
</profiles>
</caching>
(1)% systemroot% \ System32 \ inet SRV \ config \ applicationHost.config
(2) http://labs.episerver.com/en/Blogs/Per/Archive/2009/3/Configuring-cache-expiration-on-IIS-7/
Danke, Rick; Ich habe IE8 und FF 3.5 ausprobiert und finde dieses Verhalten ein bisschen komisch - ist es irgendwo dokumentiert? IIS7 (OOTB) gibt keine Verfallsheader aus, nur der ETag; Und noch folgende Anfragen an die Seite erzeugen keine 304s für diese Objekte? – Nariman
Die einzige Dokumentation, die mir bekannt ist, ist die HTTP-Spezifikation. Ich frage mich, ob Sie eine Optimierung pro Sitzung sehen. Haben Sie versucht, den Browser (alle Fenster) zu beenden, neu zu starten und zu sehen, ob das zu 304s führt? Gibt es eine öffentliche Seite, die ich sehen kann und die das von Ihnen beschriebene Verhalten aufweist? – RickNZ
Da die ursprünglichen Antworten keinen Cache-Control-Header haben, ist der Browser (etwas) frei, eine eigene Richtlinie zum Caching zu implementieren. In diesem Fall werden die Bilder für die Dauer der Sitzung zwischengespeichert. Wenn Sie die Registerkarte in IE8 mit Ihrer Site darin schließen und dann eine neue Registerkarte öffnen und zur selben Seite zurückkehren, sehen Sie eine Reihe von IMS/INM-Anfragen und 304 Antworten für alle Bilder. – RickNZ