複製鏈接
請複製以下鏈接發送給好友

瀏覽器緩存

鎖定
瀏覽器緩存(Browser Caching)是為了節約網絡的資源加速瀏覽,瀏覽器在用户磁盤上對最近請求過的文檔進行存儲,當訪問者再次請求這個頁面時,瀏覽器就可以從本地磁盤顯示文檔,這樣就可以加速頁面的閲覽。
瀏覽器緩存主要有兩類:緩存協商:Last-modified ,Etag 和徹底緩存:cache-control,Expires。
中文名
瀏覽器緩存
外文名
Browser Caching
作    用
加速頁面的閲覽
分    類
緩存協商、徹底緩存
清除緩存
internet選項
保存地址
用户磁盤

瀏覽器緩存定義特徵

瀏覽器緩存
瀏覽器緩存(4張)
瀏覽器緩存(Browser Caching)是為了加速瀏覽,瀏覽器在用户磁盤上對請求過的文檔進行存儲,當訪問者再次請求這個頁面時,瀏覽器就可以從本地磁盤顯示文檔,這樣就可以加速
頁面的閲覽。它是網站訪問統計最難解決的問題之一。
但是,Web服務器可能因此而未計算一個頁面或廣告已被閲覽的次數。
緩存的方式節約了網絡的資源,提高了網絡的效率。

瀏覽器緩存清理方法

瀏覽器緩存清除緩存

打開IE,選擇“工具--internet選項”,切換到“高級”選項卡,找到“關閉瀏覽器時清空internet臨時文件夾”,並將其選中,確定即可.
要清空 Mozilla Firefox 的緩存,請按以下步驟操作:
單擊瀏覽器頂部的"Tools"(工具)菜單,並選擇"Options"(選項)。
單擊"Privacy"(隱私)。
單擊"Cache"(高速緩衝)旁邊的"Clear"(清空緩存)。
單擊"OK"(確定)。
要清空 Mozilla 和 Netscape 的緩存,請按以下步驟操作:
註銷您的 AdSense帳户。關閉所有其他打開的瀏覽器窗口。
單擊瀏覽器頂部的"Edit"(編輯)菜單,然後選擇"Preferences"(首選項)。
單擊"Advanced"(高級)旁邊的"+"。
單擊"Advanced"(高級)下面的"Cache"(高速緩存)。
單擊"Clear Cache"(清除高速緩存)。
單擊"OK"(確定)。
要清空 Safari 的緩存,請按以下步驟操作:
註銷您的 AdSense 帳户。關閉所有其他打開的瀏覽器窗口。
打開瀏覽器工具欄中的"Safari"菜單。
選擇"Empty Cache"(清空緩存)。
單擊該對話框中的"Empty"(清空)。
某些情況下,可能需要多次清空您的緩存。
瀏覽器緩存主要有兩類
緩存協商:Last-modified ,Etag
徹底緩存:cache-control,Expires
緩存協商的意思是需要去服務器端詢問頁面有沒有修改過,沒有修改過則返回304直接使用緩存內容,否則返回新內容
協商步驟:
服務器發送帶Last-modified:GMTtime 頭的http response
瀏覽器下次請求時帶上if-modified-since:GMTtime http 請求頭
服務端用本地Last-modified時間與if-modified-since比較,計算瀏覽器數據是否過期併發送響應
Etag的工作原理與Last-modified類似,不同點在於Etag的值是用户可自定義的
緩存協商可應用在動態頁面實時性不是特別強的頁面,如網站首頁
要清空 Chrome 的緩存,請按以下步驟操作:
打開chrome瀏覽器,使用Ctrl+Shift+Delete快捷鍵,就會打開清理瀏覽數據頁面,選擇清理緩存選項,
然後單擊“清除瀏覽數據”按鍵即可。
或者單擊瀏覽器上的扳手-->選項-->高級選項-->隱私設置一欄中的清楚瀏覽數據 之後重複上面的步驟。 [1] 

瀏覽器緩存徹底緩存

徹底緩存的意思是在緩存失效之前不再需要跟服務器交互
常用的是Expires,Expires的值是一個絕對時間,由服務器產生
這兒存在一個問題,就是服務器的時間可能給客户端的時間不一致導致緩存時間的偏差
要解決這個問題就要使用cache-control,它保存的是一個相對瀏覽器的時間
如果同時存在cache-control和Expires怎麼辦呢?
瀏覽器總是優先使用cache-control,如果沒有cache-control才考慮Expires
瀏覽器緩存最大的價值是節省了帶寬
為什麼沒有提高吞吐率呢? 下面來分析一下
這裏分兩種情況:靜態頁面動態頁面
服務端加載靜態頁面需要進行磁盤IO,瀏覽器緩存則可節省這部分時間,不過服務器一般會用squid等工具進行緩存,所以靜態資源在提高吞吐率方面效果不明顯
再來看一看動態資源
動態資源也分為兩類:實時動態和準實時動態
實時動態是不能用瀏覽器緩存的
準實時動態頁面可節省磁盤IO和計算時間,但是讓瀏覽器緩存的時間不可太久,且在本地重複訪問的概率也不大
所以説動態內容在提高吞吐率方面效果也不明顯
對於準實時動態頁面倒是可以緩存在服務端,如squid
參考資料