摘要:從瀏覽器角度來看,整個就是一個源服務器,從這個層面來說,瀏覽器和服務器之間的緩存機制,在這種架構下同樣適用。如果命中,則返回,告訴瀏覽器資源未更新,可使用本地的緩存。
緩存類型
緩存在宏觀上可以分成兩類:私有緩存和共享緩存。共享緩存就是那些能被各級代理緩存的緩存。私有緩存就是用戶專享的,各級代理不能緩存的緩存。
微觀上可以分下面幾類:
瀏覽器緩存
緩存存在的意義就是當用戶點擊back按鈕或是再次去訪問某個頁面的時候能夠更快的響應。尤其是在多頁應用的網站中,如果你在多個頁面使用了一張相同的圖片,那么緩存這張圖片就變得特別的有用。瀏覽器先向代理服務器發起Web請求,再將請求轉發到源服務器。其中瀏覽器緩存包括強緩存和協商緩存,下文有詳細介紹。本文主要側重點就是針對于瀏覽器緩存。
2.CDN緩存
CDN緩存一般是由網站管理員自己部署,為了讓他們的網站更容易擴展并獲得更好的性能。通常情況下,瀏覽器先向CDN網關發起Web請求,網關服務器后面對應著一臺或多臺負載均衡源服務器,會根據它們的負載請求,動態將請求轉發到合適的源服務器上。從瀏覽器角度來看,整個CDN就是一個源服務器,從這個層面來說,瀏覽器和服務器之間的緩存機制,在這種架構下同樣適用。
3.代理服務器緩存
代理服務器是瀏覽器和源服務器之間的中間服務器,代理轉發響應時,緩存代理會預先將資源的副本(緩存)保存到代理服務器上。當代理再次接收到對相同資源的請求時,就可以不從源服務器那里獲取資源,而是將之前緩存的資源作為響應返回。
4.數據庫緩存
數據庫緩存是指,當web應用的關系比較復雜,數據庫中的表很多的時候,如果頻繁進行數據庫查詢,很容易導致數據庫不堪重荷。為了提供查詢的性能,將查詢后的數據放到內存中進行緩存,下次查詢時,直接從內存緩存直接返回,提供響應效率。
5.應用層緩存
應用層緩存是指我們在代碼層面上做的緩存。通過代碼邏輯,把曾經請求過的數據或資源等,緩存起來,再次需要數據時通過邏輯上的處理選擇可用的緩存的數據。
瀏覽器緩存就是把一個已經請求過的 web 資源拷貝一份存儲在瀏覽器中,當下次請求相同的資源時,瀏覽器會根據緩存機制決定直接使用副本響應訪問請求還是再次向服務器發送請求。
1.減少了冗余的數據傳輸
2.減少了服務器的負擔,大大提升了網站的性能
3.加快了客戶端加載網頁的速度
Memory Cache
Disk Cache
from memory cache與from disk cache
強緩存和協商緩存兩者的主要區別是使用本地緩存的時候,是否需要向服務器驗證本地緩存是否依舊有效。
強緩存瀏覽器在加載資源時,會先根據本地緩存資源的 header 中的信息判斷是否命中強緩存,如果命中則直接使用緩存中的資源不會再向服務器發送請求。
協商緩存當強緩存沒有命中的時候,瀏覽器會發送一個請求到服務器,服務器根據 header 中的部分信息來判斷是否命中緩存。如果命中,則返回 304 ,告訴瀏覽器資源未更新,可使用本地的緩存。
前端緩存最佳實踐
一文讀懂前端緩存
從前端角度理解緩存
在 Network 中有個 Disable cache ,鉤上就可以了,鉤上后瀏覽器會忽略掉文檔過期驗證和服務器再驗證的過程,直接向服務器請求最新的資源。
地址欄訪問,鏈接跳轉是正常用戶行為,將會觸發瀏覽器緩存機制;
F5刷新,瀏覽器會設置max-age=0,跳過強緩存判斷,會進行協商緩存判斷;
ctrl+F5刷新,跳過強緩存和協商緩存,直接從服務器拉取資源。
題外話:
大公司的靜態資源優化方案:
配置超長時間的本地緩存 —— 節省帶寬,提高性能
采用內容摘要作為緩存更新依據 —— 精確的緩存控制
靜態資源CDN部署 —— 優化網絡請求
更資源發布路徑實現非覆蓋式發布 —— 平滑升級
作者:張云龍
鏈接:https://www.zhihu.com/questio...
感覺講的非常棒!!!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/62082.html
摘要:緩存緩存,也叫網關緩存反向代理緩存。瀏覽器先向網關發起請求,網關服務器后面對應著一臺或多臺負載均衡源服務器,會根據它們的負載請求,動態將請求轉發到合適的源服務器上。雖然這種架構負載均衡源服務器之間的緩存沒法共享,但卻擁有更好的處擴展性。 一、前言? 工作上遇到一個這樣的需求,一個H5頁面在APP端,如果勾選已讀狀態,則下次打開該鏈接,會跳過此頁面。用到了HTML5 的本地存儲 API ...
摘要:根據標準,到目前為止,一共有種緩存機制,有些是之前已有,有些是才新加入的。首次請求緩存有效期內請求緩存過期后請求一般瀏覽器會將緩存記錄及緩存文件存在本地文件夾中。 騰訊 Bugly 特約作者:賀輝超 1. H5 緩存機制介紹 H5,即 HTML5,是新一代的 HTML 標準,加入很多新的特性。離線存儲(也可稱為緩存機制)是其中一個非常重要的特性。H5 引入的離線存儲,這意味著 web ...
摘要:對于瀏覽器緩存,相信很多開發者對它真的是又愛又恨。那么瀏覽器緩存究竟是個什么樣的神奇玩意呢什么是瀏覽器緩存簡單來說,瀏覽器緩存就是把一個已經請求過的資源如頁面,圖片,,數據等拷貝一份副本儲存在瀏覽器中。 對于瀏覽器緩存,相信很多開發者對它真的是又愛又恨。一方面極大地提升了用戶體驗,而另一方面有時會因為讀取了緩存而展示了錯誤的東西,而在開發過程中千方百計地想把緩存禁掉。那么瀏覽器緩存究竟...
摘要:對于瀏覽器緩存,相信很多開發者對它真的是又愛又恨。那么瀏覽器緩存究竟是個什么樣的神奇玩意呢什么是瀏覽器緩存簡單來說,瀏覽器緩存就是把一個已經請求過的資源如頁面,圖片,,數據等拷貝一份副本儲存在瀏覽器中。 對于瀏覽器緩存,相信很多開發者對它真的是又愛又恨。一方面極大地提升了用戶體驗,而另一方面有時會因為讀取了緩存而展示了錯誤的東西,而在開發過程中千方百計地想把緩存禁掉。那么瀏覽器緩存究竟...
閱讀 2674·2021-11-25 09:43
閱讀 2586·2021-11-22 09:34
閱讀 2848·2021-11-12 10:34
閱讀 1439·2021-10-20 13:46
閱讀 2306·2019-08-30 13:21
閱讀 934·2019-08-30 11:21
閱讀 486·2019-08-30 11:20
閱讀 2190·2019-08-29 17:20