當我們開啟控制台反覆重新整理的時候,可能會看到狀態碼含有304
的請求,這種型別的請求代表伺服器沒有給我們返回資料,而是取用的是瀏覽器快取中的資料。所以該狀態碼代表使用快取。
這裡就要涉及到我們的請求頭和響應頭中的內容了。
etags
是響應頭中的內容,而if-none-match
是請求頭中的內容。
etags
和if-none-match
的工作原理是在http response
中新增etags
資訊。當客戶端再次請求該資源時,將在http request
中加入if-none-match
資訊(etags
的值)。如果伺服器驗證資源的etags
沒有改變(該資源沒有改變),將返回乙個304
狀態,然後瀏覽器得知是304
狀態,就去瀏覽器快取中取資料,否則,伺服器將返回200
狀態,並返回該資源和新的etags
。
last-modified
是響應頭中的內容,if-modified-since
是請求頭中的內容
這兩個配合使用和上面說的etags
和if-none-math
使用用方法一樣。last-modified
代表的時候伺服器返回的該資源最後修改的時間。
請求頭部和響應頭部中都可以包含該欄位,該字段是用來設定瀏覽器快取的保留時間,它可以設定為以下值
該屬性表示內容保質期,表示存在時間,允許客戶端在這個時間之前不去檢查(發請求),等同max-age的效果。但是如果同時存在,則被cache-control
的max-age
覆蓋。
瀏覽器快取機制
最近在準備優化日誌請求時遇到了一些令人疑惑的問題,比如為什麼響應頭里出現了兩個 cache control 為什麼明明設定了 no cache 卻還是發請求,為什麼多次訪問時有時請求裡帶了 etag,有時又沒有帶?等等。後來查了一些資料以及同事親自驗證,總算對這些問題有了個清晰的理解,現在整理出來以...
瀏覽器快取機制
當我們瀏覽乙個頁面發現有異常時,通常考慮的就是書不是瀏覽器做了快取呢,按ctrl f5重新請求一次就能請求到沒有快取的頁面,這個是為什麼呢。首先,ctrl f5組合鍵重新整理頁面,那麼瀏覽器會直接向目標url傳送請求,而不再使用瀏覽器快取的資料。其次,當請求到達伺服器端依然有可能出現使用伺服器端的資...
瀏覽器快取機制
瀏覽器快取機制 瀏覽器快取機制,其實主要就是 協議定義的快取機制 如 expires cache control 等 但是也有非 協議定義的快取機制,如使用 html meta 標籤,web 開發者可以在 html 頁面的節點中加入 標籤,如下 上述 的作用是告訴瀏覽器當前頁面不被快取,每次訪問都需...