IIS7 Web.Config Caching - what are the differences here, and how does it all come together?

白昼怎懂夜的黑 提交于 2019-12-01 00:15:24

问题


In IIS7 I've got the ability to set caching options. These options are added to my web.config as such...

    <caching maxCacheSize="262144">
        <profiles>
            <add extension=".png" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="00:00:30" />
            <add extension=".jpeg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="00:00:30" />
            <add extension=".jpg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="00:00:30" />
            <add extension=".css" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="00:00:30" />
            <add extension=".js" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="00:00:30" />
        </profiles>
    </caching>

However, I've also got the following for "caching"

    <staticContent>
        <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="90.00:00:00" />
        <remove fileExtension=".js" />
        <mimeMap fileExtension=".js" mimeType="text/javascript" />
    </staticContent>

What are the differences between these two configs? They are both nested in the <system.webServer> tag, so they're both valid for IIS7.

Also, what is the right approach when using these? I currently only use this is my static assets folder. I don't use this caching on anything else.

Thanks in advance.


回答1:


The main difference is that

  • the first is for server-side caching of dynamic output such as aspx pages (basically keeps the page output in memory for subsequent requests). As @artem-vertiy's answer points out, using it for static content makes no sense.

  • the second one is 'internet-side' : it is implemented by writing standard response headers, it tells both client browsers and public proxies how to manage cached files.




回答2:


I've noticed that people often confuse the things above and write articles where recommend things as in the first block, i.e. output caching for static resources

Output caching:

Output caching is unnecessary for static files, such as HTML, JPG, or GIF files, and can cause more memory overhead for dynamic ASP.NET or PHP pages that read from a database that changes frequently

Thus

<add extension=".png" ../>
<add extension=".jpeg" ../>
etc.

is useless at least when you don't have ashx http handler for .png or .jpeg etc.



来源:https://stackoverflow.com/questions/4841237/iis7-web-config-caching-what-are-the-differences-here-and-how-does-it-all-com

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!