0

在我的场景中,我有一个 aspx 页面,其中包含一些 .js 文件的链接。

我观察到的是,即使我在 web.config 中添加了以下设置,有时我的浏览器也会返回 200 响应

<customHeaders>
    <clear />
    <add name="Expires" value="Sun, 07 Apr 2047 00:00:00 GMT" />
    <add name="Cache-Control" value="max-age=5"/>
</customHeaders>

据我了解,除非 Etags 发生更改,否则应从缓存中检索文件并因此返回 200 响应。

在我的 200 个响应头中

最后修改时间 = 2012 年 2 月 23 日星期四 10:02:49 GMT

Etag =“82f46e4c12f2cc1:0”

在我的请求标头中

If-Modified-Since = 2012 年 2 月 23 日星期四 10:02:49 GMT

If-None-Match = "80aa474c12f2cc1:0"

我知道

If-None-Match != Etag

然后我们应该得到 200 响应。理想情况下,如果 Etag 仅从 Lastmodified 日期生成,那么无论如何它都不应更改。但您也可以看到,它会自动更改。这意味着 Etags 有变化的趋势。

问题:我们如何控制这种修改?特别是通过 web.config。

4

1 回答 1

0

ETAG_CHANGENUMBER 是生成 Etag 的关键。这是 IIS7 不可配置的,但在 IIS6 中是可配置的,请参见 - http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/ef7f9d58-2a96-4bd8-8ac1-2a67b43284f1.mspx?mfr=true

于 2012-06-26T10:51:49.637 回答