是否有可能以某種方式強制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