如何从缓存中获取图像,css,js(http状态200(缓存)不是304)

时间:2012-06-10 11:51:27

标签: javascript

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

我使用的是asp.net 4,iis 7。

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

如果有任何技巧,请告诉我。

1 个答案:

答案 0 :(得分:2)

您已经说过设置到期时间无效,但如果您设置了正确的标题,则会有所帮助。

以下是一个很好的例子:Google的图书馆托管。以下是Google要求提供库的完全限定版本的(相关)标题(例如,jQuery 1.7.2,而不是jQuery 1. 或jQuery 1.7。< / em>的):

Date:Thu, 07 Jun 2012 14:43:04 GMT
Cache-Control:public, max-age=31536000
Expires:Fri, 07 Jun 2013 14:43:04 GMT

Date并不真正相关,我只是将其包含在内,以便您知道上面的标题何时生成。)正如您所看到的,Cache-Control已明确设置为{max-age一年的1}},Expires标题也指定从现在开始一年的到期日期。对同一个完全限定的库的后续访问(在一年内)甚至不会向服务器发出If-Modified-Since请求,因为浏览器知道缓存的副本是新的。

RFC 2616中HTTP 1.1中的

This description缓存应该会有所帮助。