3

我有引用大量 JS、图像文件的网页。第二次加载页面时,304 请求会发送到服务器。我想获得缓存对象的 http 200(缓存)状态而不是 304。

我正在使用 asp.net 4、iis 7。

设置 Expiry 标头不起作用,它仍然发送 304 请求。我想要http状态200(缓存)。

请让我知道是否有任何技术。

4

1 回答 1

2

您已经说过设置到期时间没有帮助,但是如果您设置了正确的标题,它就会有帮助。

这是一个很好的例子:谷歌的图书馆托管。如果您要求库的完全限定版本(例如,jQuery 1.7.2,而不是 jQuery 1.或 jQuery 1.7.),以下是 Google 发回的(相关)标头:

日期:格林威治标准时间 2012 年 6 月 7 日星期四 14:43:04
缓存控制:公共,最大年龄=31536000
过期:格林威治标准时间 2013 年 6 月 7 日星期五 14:43:04

Date实际上并不相关,我只是将其包含在内,以便您知道上面的标头是何时生成的。)正如您所见,Cache-Control已经明确设置了 a max-ageof a year ,并且Expires标头还指定了一年的到期日期现在。随后(一年内)访问同一个完全合格的库甚至不会导致If-Modified-Since对服务器的请求,因为浏览器知道缓存的副本是新鲜的。

RFC 2616 中对 HTTP 1.1 中缓存的描述应该会有所帮助。

于 2012-06-10T12:01:16.500 回答