在IIS中设置“过期Web内容”常见的http响应标头

时间:2011-10-10 15:19:30

标签: caching iis static-content

我们有一个相当大量的IIS7.0站点(每天约100万个请求),其中很多是Images / CSS / JS。

作为一种减少此问题的快速方法,我正在考虑设置常见的http响应标头,以便将来某个固定日期方式使网络内容过期,并且想知道我们可以利用它来获得哪些可能的缺点。

查看因设置此而导致的web.config更改,它添加了:

<staticContent>
    <clientCache cacheControlMode="UseExpires" cacheControlMaxAge="1.00:00:00" httpExpires="Thu, 01 Oct 2020 00:00:00 GMT" />
</staticContent>

我担心的是,如果我们想在设置之后更改其中一个CSS / JS / Images,客户端就不会接收更改,而图像可能不会改变,CSS / JS肯定会。这是否意味着我们只应为包含图像的文件夹设置此项?或者这是否意味着我们需要为CSS / JS引入版本化的URL?

1 个答案:

答案 0 :(得分:7)

您应该始终缓存静态内容(图像,CSS,JS)

即使在缓存时,大多数浏览器仍会礼貌地询问服务器是否有更新版本(If-Modified-Since),服务器将回复未修改。 (例如,IE默认为“自动检查新版本的页面”)

有一点需要注意:如果您的服务器和客户端之间存在其他代理,那么这些代理可以严格选择遵守您的缓存设置,并且可以提供“陈旧”内容,因此您需要将一些想法应用于最佳缓存持续时间。