2011-01-25 210 views

回答

1

在Nginx中的服务器上设置expires指令。在达到到期时间之前,浏览器不会检查服务器。在这一点上,如果静态文件没有改变,服务器仍然可以发回304响应,并且在浏览器再次检查之前必须达到到期时间。

顺便说一下,200响应代码只是表示所请求的资源正在返回。它与任何缓存头是否与HTTP响应一起发送都没有关系。

+0

我有到期设定为2周,但谷歌Chrome的开发工具仍然显示304名的请求,而不是200码。它是否提供虚假信息? – ustun 2012-05-16 16:19:02

4

我发现单独过期并没有正确设置行为。下面一直是确保消防:

# Set cache 
expires 1M; 
add_header Pragma public; 
add_header Cache-Control "public"; 

这会在你需要的位置块..

我也觉得有很多在那里误导此信息..的那200是某种相同200(缓存)。

从我的理解:

200 - 服务器请求 - 转让OK 200(高速缓存) - 确定 - 无服务器请求(从缓存) 304 - 服务器请求 - 不转让(不修改)

200(缓存),据我所知,它根本不会提出服务器请求。

0

200不是缓存响应;它表示成功,它要求响应包含结果。 304表示未修改的资源;也就是说你已经拥有了它,所以没有任何东西会被返回。所以,你的建议应该会导致所有304的伪装成200的失败。即使它不会保存任何请求或加速假冒200响应。

编辑:200在某些情况下,意味着资源已经从成功缓存中获取...

相关问题