是否有可能以某种方式强制200(缓存)响应而不是304对静态文件进行修改?如果是这样,您可以节省大量的服务器请求,并可以为回访用户加快加载时间。Nginx - “强制”200高速缓存响应而不是304
6
A
回答
1
在Nginx中的服务器上设置expires
指令。在达到到期时间之前,浏览器不会检查服务器。在这一点上,如果静态文件没有改变,服务器仍然可以发回304响应,并且在浏览器再次检查之前必须达到到期时间。
顺便说一下,200响应代码只是表示所请求的资源正在返回。它与任何缓存头是否与HTTP响应一起发送都没有关系。
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在某些情况下,意味着资源已经从成功缓存中获取...
相关问题
- 1. 304 200(从高速缓存)
- 2. Jetty响应状态200而不是304,而使用http2
- 3. 浏览器不能与200响应(从高速缓存),并发送304不修改
- 4. squishit给出304(而不是修改)而不是200(来自缓存)
- 5. nginx状态码200和304
- 6. 有时GET返回304而不是200
- 7. 防止200(缓存)响应
- 8. 禁用NGINX缓存304来自原始服务器的响应
- 9. jQuery/AJAX/Chrome/IIS:如何强制高速缓存重新验证(304)?
- 10. AFNetworking 2.0 - 强制高速缓存
- 11. jQuery.ajax - 强制高速缓存失效
- 12. 动态CSS没有被浏览器缓存 - 响应返回200 OK,而不是304未修改
- 13. nginx无缓冲区高速缓存
- 14. 缓存控制响应头不强制浏览器缓存
- 15. NSURLCache高速缓存响应问题
- 16. NGINX内存高速缓存时出现
- 17. 浏览器200(缓存)强制重载
- 18. nginx'干扰'缓存响应?
- 19. Apache Camel CXF响应202而不是200
- 20. nginx代理不缓存OCSP响应
- 21. 响应头中的高速缓存控制
- 22. Nginx上的Varnish/Symfony3缓存 - 高速缓存前的0 0
- 23. 通过控制器操纵响应,强制不缓存
- 24. 允许Laravel响应403而不是nginx
- 25. 你可以强制浏览器总是获取缓存的文件,而不是做一个304的往返?
- 26. Google云端存储:通过缓存的状态200进行访问,而不是状态304
- 27. 使用ETag,但状态码始终为200而不是304
- 28. 如何让304从jQuery Ajax而不是200?
- 29. cURL - 在我的浏览器中获得200 OK而不是304
- 30. 高速缓存内存大小限制
我有到期设定为2周,但谷歌Chrome的开发工具仍然显示304名的请求,而不是200码。它是否提供虚假信息? – ustun 2012-05-16 16:19:02