2013-10-20 440 views
20

我試圖瞭解究竟是什麼之間「狀態304不修改」和「200(從高速緩存)」 Here is the screenshot304 200(從高速緩存)

我得到304上的差異不修改我最後更改的JavaScript文件。爲什麼會發生? 感謝您的協助。

+9

這是與[Here]相同的問題(http://stackoverflow.com/questions/1665082/http-status-code-200-cache-vs-status-code-304 )。你會在這裏得到的細節,可以非常有幫助。 –

+8

[HTTP狀態碼200(緩存)與狀態碼304之間有什麼區別?](http://stackoverflow.com/questions/1665082/what-is-the-difference-between-http-status-代碼-200-緩存-VS-STATUS-碼-304) –

回答

0

304改性
阿304未修改意味着,文件沒有被自由 「如果-Modified-Since的」,或者 「如果 - 無 - 匹配」 指定的版本修改。

200 OK
這是您在HTTP請求工作時得到的響應。 GET請求將與文件有關。一個POST請求將會持有該操作的結果。

快樂編碼!
Lyfe

1

https://sookocheff.com/post/api/effective-caching/是圍繞這2個HTTP狀態碼形成所需理解的極好來源。

徹底看完這個,我有這樣的認識

在典型的用法,當一個URL被檢索,Web服務器將與其相應的ETag值,這是擺在HTTP響應一起返回資源的當前表示標題「ETag」字段。然後客戶可能決定緩存表示,以及它的ETag。稍後,如果客戶端想要再次檢索相同的URL資源,它將首先確定本地緩存版本的URL是否已過期(通過Cache-Control和Expire標頭)。如果URL尚未過期,它將檢索本地緩存資源。如果確定URL已過期(已過時),則客戶端將聯繫服務器,並在「If-None-Match」字段中將先前保存的ETag副本與請求一起發送。 (來源:https://en.wikipedia.org/wiki/HTTP_ETag

但即使將來設置了資產的到期時間,瀏覽器仍然可以根據'Vary'標頭使用ETag到達服務器以獲得條件GET。 'vary'頭上的詳細信息:https://www.fastly.com/blog/best-practices-using-vary-header/