我有引用大量 JS、图像文件的网页。第二次加载页面时,304 请求会发送到服务器。我想获得缓存对象的 http 200(缓存)状态而不是 304。
我正在使用 asp.net 4、iis 7。
设置 Expiry 标头不起作用,它仍然发送 304 请求。我想要http状态200(缓存)。
请让我知道是否有任何技术。
我有引用大量 JS、图像文件的网页。第二次加载页面时,304 请求会发送到服务器。我想获得缓存对象的 http 200(缓存)状态而不是 304。
我正在使用 asp.net 4、iis 7。
设置 Expiry 标头不起作用,它仍然发送 304 请求。我想要http状态200(缓存)。
请让我知道是否有任何技术。
您已经说过设置到期时间没有帮助,但是如果您设置了正确的标题,它就会有帮助。
这是一个很好的例子:谷歌的图书馆托管。如果您要求库的完全限定版本(例如,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-age
of a year ,并且Expires
标头还指定了一年的到期日期现在。随后(一年内)访问同一个完全合格的库甚至不会导致If-Modified-Since
对服务器的请求,因为浏览器知道缓存的副本是新鲜的。
RFC 2616 中对 HTTP 1.1 中缓存的描述应该会有所帮助。