瀏覽器快取簡單機制

2021-07-12 01:40:16 字數 949 閱讀 7437

以下內容貌似簡單,但有些朋友不一定都理解清晰了。 

瀏覽器快取存在本地,ie的如:c:\documents and settings\administrator\local settings\temporary internet files資料夾下。瀏覽器取快取內容的型別: 

(1)本地快取:

直接從本地去頁面快取; 

如果快取的頁面有expires(絕對時刻)或cache-control:max-age(時長),則在有效時間內,則取本地頁面,不會給瀏覽器發請求。 

(2)協商快取:

與web伺服器協商,判斷是否取瀏覽器快取。 

如果沒有expires或max-age,則瀏覽器會發請求到伺服器,附上if-modified-since報文頭,web伺服器則會判斷頁面是否在這個時間後有更新過,如沒有則返回乙個304狀態,瀏覽器取本地快取的內容;否則,伺服器將返回200狀態,並返回該資源和last-modified。 

在瀏覽器(如ie)中有幾種操作,如下: 

(1)強制重新整理:

ctrl + f5 

瀏覽器將繞過本地快取、協商快取,讓伺服器重新傳送請求的資源。 

(2)重新整理:

f5 瀏覽器將繞過本地快取,將使用協商快取來請求資源。 

(3)轉向或回車

: 瀏覽器將使用本地快取、協商快取。 

etag: 

last-modified與if-modified-since是一對報文頭,屬於http 1.0。 

etag與if-none-match是一對報文,屬於http 1.1。 

他們要實現的都是協商快取,但last-modified和if-modified-since只判斷資源的最後修改時間,而etags和if-none-match可以是資源任何的任何屬性。 

etag機制類似於樂觀鎖機制,如果請求報文的etag與伺服器的不一致,則表示該資源已經被修改過來,需要發最新的內容給瀏覽器。 

瀏覽器快取機制

最近在準備優化日誌請求時遇到了一些令人疑惑的問題,比如為什麼響應頭里出現了兩個 cache control 為什麼明明設定了 no cache 卻還是發請求,為什麼多次訪問時有時請求裡帶了 etag,有時又沒有帶?等等。後來查了一些資料以及同事親自驗證,總算對這些問題有了個清晰的理解,現在整理出來以...

瀏覽器快取機制

當我們瀏覽乙個頁面發現有異常時,通常考慮的就是書不是瀏覽器做了快取呢,按ctrl f5重新請求一次就能請求到沒有快取的頁面,這個是為什麼呢。首先,ctrl f5組合鍵重新整理頁面,那麼瀏覽器會直接向目標url傳送請求,而不再使用瀏覽器快取的資料。其次,當請求到達伺服器端依然有可能出現使用伺服器端的資...

瀏覽器快取機制

瀏覽器快取機制 瀏覽器快取機制,其實主要就是 協議定義的快取機制 如 expires cache control 等 但是也有非 協議定義的快取機制,如使用 html meta 標籤,web 開發者可以在 html 頁面的節點中加入 標籤,如下 上述 的作用是告訴瀏覽器當前頁面不被快取,每次訪問都需...