【技術心得】Last-Modified,Etag,Expire區別

【技術心得】Last-Modified,Etag,Expire 區別

Last-Modified 是什麼

Last-Modified HttpHeader 中的資源的最後修改時間,如果帶有 Last-Modified ,下一次發送 Http 請求時,將會發生帶 If-modified-since HttpHeader 。如果沒有過期,將會收到 304 的響應,從緩存中讀取。

Etag 是什麼

Etag HttpHeader 中代表資源的標籤,在服務器端生成。如果帶有 Etag ,下一次發送帶 Etag 的請求,如果 Etag 沒有變化將收到 304 的響應,從緩存中讀取。

Etag 在使用時要注意相同資源多臺 Web 服務器的 Etag 的一致性。

 

Expire 是什麼

Expire HttpHeader 中代表資源的過期時間,由服務器段設置。如果帶有 Expire ,則在 Expire 過期前不會發生 Http 請求,直接從緩存中讀取。用戶強制 F5 例外。

Last-Modified,Etag,Expire 混合

通常 Last-Modified,Etag,Expire 是一起混合使用的,特別是 Last-Modified Expire 經常一起使用,因爲 Expire 可以讓瀏覽器完全不發起 Http 請求,而當瀏覽器強制 F5 的時候又有 Last-Modified ,這樣就很好的達到了瀏覽器段緩存的效果。

Etag Expire 一起使用時,先判斷 Expire ,如果已經過期,再發起 Http 請求,如果 Etag 也過期,則返回 200 響應。如果 Etag 沒有過期則返回 304 響應。

Last-Modified,Etag,Expires 三個同時使用時。先判斷 Expire ,然後發送 Http 請求,服務器先判斷 last-modified ,再判斷 Etag ,必須都沒有過期,才能返回 304 響應。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章