我的网页引用了大量的JS,图像文件。当第二次加载页面时,304个请求进入服务器。我想获得缓存对象的http 200(缓存)状态,而不是304。
我使用的是asp.net 4,iis 7。
设置Expiry标头不起作用,它仍然发送304个请求。我想要http状态200(缓存)。
如果有任何技巧,请告诉我。
答案 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
请求,因为浏览器知道缓存的副本是新的。
This description缓存应该会有所帮助。