2012-06-10 143 views
3

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

我使用asp.net 4,IIS 7

设置到期头不工作,但它仍然发送304个请求。我想要http状态200(缓存)。

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

+0

304和200是响应状态,而不是请求类型。 200的意思是“好吧,你走吧”。 304表示“您已经拥有最新版本,请使用缓存”。你的问题没有任何意义。 – Quentin

+0

你能详细说明原因吗? –

+0

如果您正确设置缓存标头,浏览器将不会发出请求。因此,您需要阅读正确的缓存标头以发送,等等。如果您无法正常工作,请**显示**您正在做什么(不要描述它,显示代码)和人员可以指出你的错误。 –

回答

2

你曾经说过,设置失效并没有帮助,但是如果你设置了正确的标题,它确实会有帮助。

下面是一个很好的例子:Google的图书馆托管。这里是(相关)报头,如果你问一个完全限定版本的库(如jQuery的1.7.2,jQuery的没有1 ,或jQuery的1.7。)谷歌发回:

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,并且Expires标题还指定从现在起一年的有效日期。后续访问(一年内)到同一个完全限定的库甚至不会导致对服务器的If-Modified-Since请求,因为浏览器知道缓存副本是新鲜的。

This description缓存HTTP RFC 1.1在RFC 2616应该有所帮助。

+0

是的,我想要有类似的行为为我的网站。我想,后续访问相同的完全限定库不应导致304“If-Modified-Since”。你知道这是否有任何技术? – user1233802

+0

@ user1233802:是:在响应中设置标题(例如,配置您的Web服务器,以便以这种方式发送要处理的文档的正确缓存标头)。 –

相关问题