最近上線發(fā)現(xiàn)抵窒,新上線的內(nèi)容要強刷下瀏覽器蛋勺,頁面才會是新內(nèi)容
Last-Modified 是什么
Last-Modified 是 HttpHeader 中的資源的最后修改時間尿这,如果帶有 Last-Modified 智政,下一次發(fā)送 Http 請求時,將會發(fā)生帶 If-modified-since 的 HttpHeader 皱蹦。如果沒有過期煤杀,將會收到 304 的響應,從緩存中讀取沪哺。
Etag 是什么
Etag 是 HttpHeader 中代表資源的標簽怜珍,在服務器端生成。如果帶有 Etag 凤粗,下一次發(fā)送帶 Etag 的請求酥泛,如果 Etag 沒有變化將收到 304 的響應,從緩存中讀取嫌拣。
Etag 在使用時要注意相同資源多臺 Web 服務器的 Etag 的一致性柔袁。
Expire 是什么
Expire 是 HttpHeader 中代表資源的過期時間,由服務器段設置异逐。如果帶有 Expire 捶索,則在 Expire 過期前不會發(fā)生 Http 請求,直接從緩存中讀取灰瞻。用戶強制 F5 例外腥例。
Last-Modified,Etag,Expire 混合
通常 Last-Modified,Etag,Expire 是一起混合使用的,特別是 Last-Modified 和 Expire 經(jīng)常一起使用酝润,因為 Expire 可以讓瀏覽器完全不發(fā)起 Http 請求燎竖,而當瀏覽器強制 F5 的時候又有 ###Last-Modified ,這樣就很好的達到了瀏覽器段緩存的效果要销。
Etag 和 Expire 一起使用時构回,
先判斷 Expire ,如果已經(jīng)過期疏咐,再發(fā)起 Http 請求纤掸,如果 Etag 也過期,則返回 200 響應浑塞。如果 Etag 沒有過期則返回 304 響應借跪。
Last-Modified,Etag,Expires 三個同時使用時。
先判斷 Expire 酌壕,然后發(fā)送 Http 請求掏愁,服務器先判斷 last-modified ,再判斷 Etag 仅孩,必須都沒有過期托猩,才能返回 304 響應。