gpt4 book ai didi

asp.net - ETags、IIS7、内核缓存策略(enableKernelCache)

转载 作者:行者123 更新时间:2023-12-04 15:28:06 27 4
gpt4 key购买 nike

两部分问题(部分密切相关):使用 IIS7 采用的默认 OOTB ETag 策略,为什么我们在浏览页面时看不到 If-None-Match/304 交互?

例如,为空缓存请求返回的 header 是:

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 往返?

此外,默认 应用主机 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/

最佳答案

ETag 的处理和相关的 If-None-Match/If-Modified-Since 有点依赖于浏览器。您可能会尝试几种不同的浏览器,看看会发生什么——一般来说,如果您没有设置明确的到期时间,我希望看到 304,正如您所说。

对于内核缓存,默认情况下为静态文件启用它。为了帮助了解发生了什么,我发现运行以下命令很有帮助:

netsh http show cachestate

这将显示有关当前在缓存中的文件的信息。

请记住,在内核缓存文件之前,通常必须在特定时间窗口内多次引用文件。

关于asp.net - ETags、IIS7、内核缓存策略(enableKernelCache),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1948727/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com