是否有可能以某种方式强制执行200(缓存)响应而不是304未针对静态文件进行修改?如果是这样,您可能会为返回的访问者节省大量服务器请求并加快加载时间。
答案 0 :(得分:4)
我发现单独的Expires没有正确设置行为。以下是肯定的火灾:
# Set cache
expires 1M;
add_header Pragma public;
add_header Cache-Control "public";
这会在您所在的位置阻止..
我也认为这里有很多误导性的信息..那200就像200(缓存)一样。
根据我的理解:
200 - 服务器请求 - 传输正常 200(缓存) - 确定 - 没有服务器请求(来自缓存) 304 - 服务器请求 - 无转移(未修改)
200(缓存)据我所知,它根本不会发出服务器请求。
答案 1 :(得分:1)
在您为静态文件提供服务的位置设置Nginx中的expires
指令。在达到到期时间之前,浏览器不会费心检查服务器。此时,如果静态文件没有更改,服务器仍可以发回304响应,并且在浏览器再次检查之前必须达到到期时间。
顺便说一句,200响应代码只是表示正在返回请求的资源。它与是否使用HTTP响应发送任何缓存标头无关。
答案 2 :(得分:0)
200不是缓存响应;它表示成功,它要求响应包含结果。 304表示未修改的资源;也就是说你已经拥有它,所以没有任何回报。所以,你所建议的应该导致所有304的伪装成为200的失败。即使它不是你不会保存任何请求或加速假的200响应。
编辑:200在某些情况下意味着资源已从缓存中获取成功...