Вопрос из двух частей (части тесно связаны): с политикой OOTB ETag по умолчанию, которую использует IIS7, почему мы не видим взаимодействие If-None-Match / 304 при навигации по страницам?
Заголовки, возвращаемые для запроса пустого кэша, например:
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
... и, тем не менее, последующие обращения к странице не генерируют круговую передачу 304 для изображения?
Кроме того, по умолчанию файл applicationHost для IIS7 имеет следующее (1):
<caching enabled="true" enableKernelCache="true">
</caching>
Распространяется ли enableKernelCache = 'true' на все статические файлы, освобождая вас от необходимости явно регистрировать расширения для предоставления CacheUntilChange в качестве политики ядра (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 \ inetsrv \ config \ applicationHost.config
(2) http://labs.episerver.com/en/Blogs/Per/Archive/2009/3/Configuring-cache-expiration-on-IIS-7/