瀏覽器快取就是把乙個已經請求過的web資源(比如html、image、js、css等檔案)拷貝乙份副本儲存在瀏覽器中。快取會根據進來的請求儲存輸出內容的副本。當下乙個請求來到的時候,如果是相同的url,快取會根據快取機制決定是直接使用副本響應訪問請求,還是向源伺服器再次傳送請求。
(1)減少網路頻寬消耗
無論對於**運營者或者使用者,頻寬都代表著金錢,過多的頻寬消耗,只會便宜了網路運營商。當web快取副本被使用時,只會產生極小的網路流量,可以有效的降低運營成本。
(2)降低伺服器壓力
給網路資源設定有效期之後,使用者可以重複使用本地的快取,減少對源伺服器的請求,間接降低伺服器的壓力。同時,搜尋引擎的爬蟲機械人也能根據過期機制降低爬取的頻率,也能有效降低伺服器的壓力。
(3)減少網路延遲,加快頁面開啟速度
頻寬對於個人**運營者來說是十分重要,而對於大型的網際網路公司來說,可能有時因為錢多而真的不在乎。那web快取還有作用嗎?答案是肯定的,對於終端使用者,快取的使用能夠明顯加快頁面開啟速度,達到更好的體驗。
對於瀏覽器端的快取來講,這些規則是在http協議頭和html頁面的meta標籤中定義的。他們分別從新鮮度和校驗值兩個維度來規定瀏覽器是否可以直接使用快取中的副本,還是需要去源伺服器獲取更新的版本。
新鮮度(過期機制):也就是快取副本有效期。乙個快取副本必須滿足以下條件,瀏覽器會認為它是有效的,足夠新的:
1. 含有完整的過期時間控制頭資訊(http協議報頭),並且仍在有效期內;
2. 瀏覽器已經使用過這個快取副本,並且在乙個會話中已經檢查過新鮮度;
滿足以上兩個情況的一種,瀏覽器會直接從快取中獲取副本並渲染。
校驗值(驗證機制):伺服器返回資源的時候有時在控制頭資訊帶上這個資源的實體標籤etag(entity tag),它可以用來作為瀏覽器再次請求過程的校驗標識。如過發現校驗標識不匹配,說明資源已經被修改或過期,瀏覽器需求重新獲取資源內容。
瀏覽器快取機制詳解
瀏覽器的快取機制,主要指由http 協議 定義的快取機制。但也有非 協議定義的快取機制,如 html meta 標籤,但所有快取 伺服器都不支援,因為 不解析 html 內容本身。下主要介紹 協議定義的快取機制 cache control 用於指定 快取控制,cache control 的選擇更多,...
瀏覽器快取機制
最近在準備優化日誌請求時遇到了一些令人疑惑的問題,比如為什麼響應頭里出現了兩個 cache control 為什麼明明設定了 no cache 卻還是發請求,為什麼多次訪問時有時請求裡帶了 etag,有時又沒有帶?等等。後來查了一些資料以及同事親自驗證,總算對這些問題有了個清晰的理解,現在整理出來以...
瀏覽器快取機制
當我們瀏覽乙個頁面發現有異常時,通常考慮的就是書不是瀏覽器做了快取呢,按ctrl f5重新請求一次就能請求到沒有快取的頁面,這個是為什麼呢。首先,ctrl f5組合鍵重新整理頁面,那麼瀏覽器會直接向目標url傳送請求,而不再使用瀏覽器快取的資料。其次,當請求到達伺服器端依然有可能出現使用伺服器端的資...