瀏覽器快取總結

2021-08-30 12:59:26 字數 1167 閱讀 2343

瀏覽器快取主要有兩類

快取協商:last-midified ,etag

徹底快取:cache-control,expires

[b]快取協商[/b]的意思是需要去伺服器端詢問頁面有沒有修改過,沒有修改過則返回304直接使用快取內容,否則返回新內容

協商步驟:

[list]

[*]伺服器傳送帶last-midified:gmttime 頭的http response

[*]瀏覽器下次請求時帶上if-modified-since:gmttime http 請求頭

[*]服務端用本地last-midified時間與if-modified-since比較,計算瀏覽器資料是否過期並傳送響應

[/list]

etag的工作原理與last-midified類似,不同點在於etag的值是使用者可自定義的

[b]快取協商可應用在動態頁面且實時性不是特別強的頁面,如**首頁[/b]

[b]徹底快取[/b]

徹底快取的意思是在快取失效之前不再需要跟伺服器互動

常用的是expires,expires的值是乙個絕對時間,由伺服器產生

這兒存在乙個問題,就是伺服器的時間可能給客戶端的時間不一致導致快取時間的偏差

要解決這個問題就要使用cache-control,它儲存的是乙個相對瀏覽器的時間

如果同時存在cache-control和expires怎麼辦呢?

瀏覽器總是優先使用cache-control,如果沒有cache-control才考慮expires

[b]瀏覽器快取最大的價值是節省了頻寬[/b]

為什麼沒有提高吞吐率呢? 下面來分析一下

[color=red]這裡分兩種情況:靜態頁面和動態頁面[/color]

服務端載入靜態頁面需要進行磁碟io,瀏覽器快取則可節省這部分時間,不過伺服器一般會用squid等工具進行快取,所以[color=red]靜態資源在提高吞吐率方面效果不明顯[/color]

再來看一看動態資源

動態資源也分為兩類:實時動態和準實時動態

實時動態是不能用瀏覽器快取的

準實時動態頁面可節省磁碟io和計算時間,但是讓瀏覽器快取的時間不可太久,且在本地重複訪問的概率也不大

所以說[color=red]動態內容在提高吞吐率方面效果也不明顯[/color]

對於準實時動態頁面倒是可以快取在服務端,如squid

簡單總結瀏覽器快取

瀏覽器快取 瀏覽器快取是瀏覽器在本地磁碟對使用者最近請求過的文件進行儲存,當訪問者再次訪問同一頁面的時候,瀏覽器可以直接從本地磁碟載入文件。為什麼要使用瀏覽器快取 瀏覽器快取作為web效能優化的重要方式之一,那麼瀏覽器快取的過程是怎麼樣的呢?瀏覽器快取過程 在瀏覽器第一次發起請求時,本地無快取,向伺...

瀏覽器快取總結篇

瀏覽器快取策略大家一定不陌生,如果沒有進行系統的歸納總結,可能三言兩語說不清楚。這點我在面試中感觸頗深,以前未經過深入理解時,只能說出幾個概念或者回答得比較模糊,甚至說錯,顯得自己的基礎知識特別不紮實。瀏覽器快取介紹 快取機制 原理 快取分類 協商快取 快取位置 下面是我做的乙個大致的思維導圖 1....

快取 瀏覽器快取

瀏覽器快取 brower caching 是瀏覽器在本地磁碟對使用者最近請求過的文件進行儲存,當訪問者再次訪問同一頁面時,瀏覽器就可以直接從本地磁碟載入文件 1 瀏覽器第一次請求時,會發出一組 http 頭,用來指導瀏覽器如何進行快取。伺服器規定乙個資源是否要進行快取,主要由響應頭中的expires...