Domanda in due parti (le parti sono strettamente correlate): con il criterio ETag OOTB predefinito utilizzato da IIS7, perché non vediamo l'interazione If-None-Match/304 come navighiamo tra le pagine?ETags, IIS7, Kernel Cache Policy (enableKernelCache)
Le intestazioni restituiti per una richiesta di vuoto-cache, per esempio, sono:
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
... eppure successivi accessi alla pagina di non generare un andata e ritorno 304 per l'immagine?
Inoltre, il default applicationHost lima per IIS7 ha la seguente (1):
<caching enabled="true" enableKernelCache="true">
</caching>
Fa enableKernelCache = 'true' estendere a tutti i file statici, liberandovi della necessità di registrare le estensioni esplicitamente di concedere CacheUntilChange come la politica del kernel (2):
<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/
Grazie, Rick; Ho provato sia IE8 che FF 3.5 e ho trovato questo comportamento un po 'strano - è documentato ovunque? IIS7 (OOTB) non emette intestazioni di scadenza, solo l'ETag; e tuttavia le richieste successive alla pagina non generano 304 per questi oggetti? – Nariman
L'unica documentazione di cui sono a conoscenza è la specifica HTTP. Mi chiedo se stai vedendo un'ottimizzazione per sessione. Hai provato a uscire dal browser (tutte le finestre), a riavviarlo e a vedere se il risultato è 304s? C'è una pagina pubblica che posso vedere che mostra il comportamento che stai descrivendo? – RickNZ
Poiché le risposte originali non hanno un'intestazione Cache-Control, il browser è (in qualche modo) libero di implementare la propria politica in merito alla memorizzazione nella cache. In questo caso, sceglie di memorizzare le immagini nella cache per la durata della sessione. Se chiudi la scheda in IE8 con il tuo sito al suo interno, quindi apri una nuova scheda e torni alla stessa pagina, vedrai un mucchio di richieste IMS/INM e 304 risposte per tutte le immagini. – RickNZ