當我們瀏覽乙個頁面時發現有異常的情況下,通常考慮的就是瀏覽器是不是做了快取,所以一般的做法就是按ctrl+f5組合鍵重新請求一次這個頁面,重新請求的頁面肯定是最新的頁面。因此按ctrl+f5組合鍵重新整理頁面,瀏覽器會直接向目標url傳送請求,而不會使用瀏覽器快取的資料。
為了保證使用者能夠看到最新的資料,必須通過http來控制。當使用ctrl+f5組合鍵重新整理頁面時,會在http的請求頭中增加一些請求頭,它告訴伺服器我們要獲取最新的資料而不是快取。在請求頭中增加了兩個請求項pragma:no-cache和cache-control:no-cache。
該欄位用於指定所有快取機制在整個請求/響應鏈中必須服從的指令,如果知道該頁面是否為快取,不僅可以控制瀏覽器,還可以控制和http相關的快取或**伺服器。http head欄位有一些可選值,如下表。cache-control請求欄位的優先順序比較高,它和其他一些請求字段(如expires)同時出現時,它會覆蓋其他字段。pragma欄位的作用和cache-control有點類似。
該欄位指定快取失效時間,後面跟著乙個日期和時間,超過該時間值,快取的內容將失效,瀏覽器在發出請求之前會檢查該欄位,看也沒是否過期,如果過期了就重新向伺服器發起請求。
last-modified欄位一般用於表示乙個伺服器上的資源的最後修改時間
etag欄位的作用是讓伺服器給每個頁面分配乙個唯一的編號,然後通過這個編號來區分當前這個頁面是否是最新的
上面的字段,可以通過瀏覽器外掛程式來檢視,chrome——更多工具——開發者工具——network(最上欄)
瀏覽器快取機制
最近在準備優化日誌請求時遇到了一些令人疑惑的問題,比如為什麼響應頭里出現了兩個 cache control 為什麼明明設定了 no cache 卻還是發請求,為什麼多次訪問時有時請求裡帶了 etag,有時又沒有帶?等等。後來查了一些資料以及同事親自驗證,總算對這些問題有了個清晰的理解,現在整理出來以...
瀏覽器快取機制
當我們瀏覽乙個頁面發現有異常時,通常考慮的就是書不是瀏覽器做了快取呢,按ctrl f5重新請求一次就能請求到沒有快取的頁面,這個是為什麼呢。首先,ctrl f5組合鍵重新整理頁面,那麼瀏覽器會直接向目標url傳送請求,而不再使用瀏覽器快取的資料。其次,當請求到達伺服器端依然有可能出現使用伺服器端的資...
瀏覽器快取機制
瀏覽器快取機制 瀏覽器快取機制,其實主要就是 協議定義的快取機制 如 expires cache control 等 但是也有非 協議定義的快取機制,如使用 html meta 標籤,web 開發者可以在 html 頁面的節點中加入 標籤,如下 上述 的作用是告訴瀏覽器當前頁面不被快取,每次訪問都需...