2011-01-25 147 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在某些情況下,意味着資源已經從成功緩存中獲取...

相關問題