Web緩存的作用與類型

什麼是Web緩存

Web緩存是指一個Web資源(如html頁面,圖片,js,數據等)存在於Web服務器和客戶端(瀏覽器)之間的副本。緩存會根據進來的請求保存輸出內容的副本;當下一個請求來到的時候,如果是相同的URL,緩存會根據緩存機制決定是直接使用副本響應訪問請求,還是向源服務器再次發送請求。比較常見的就是瀏覽器會緩存訪問過網站的網頁,當再次訪問這個URL地址的時候,如果網頁沒有更新,就不會再次下載網頁,而是直接使用本地緩存的網頁。只有當網站明確標識資源已經更新,瀏覽器纔會再次下載網頁。

Web緩存的作用

使用Web緩存的作用其實是非常顯而易見的:

減少網絡帶寬消耗:無論對於網站運營者或者用戶,帶寬都代表着金錢,過多的帶寬消耗,只會便宜了網絡運營商。當Web緩存副本被使用時,只會產生極小的網絡流量,可以有效的降低運營成本。

降低服務器壓力:給網絡資源設定有效期之後,用戶可以重複使用本地的緩存,減少對源服務器的請求,間接降低服務器的壓力。同時,搜索引擎的爬蟲機器人也能根據過期機制降低爬取的頻率,也能有效降低服務器的壓力。
 

減少網絡延遲,加快頁面打開速度:帶寬對於個人網站運營者來說是十分重要,而對於大型的互聯網公司來說,可能有時因爲錢多而真的不在乎。那Web緩存還有作用嗎?答案是肯定的,對於最終用戶,緩存的使用能夠明顯加快頁面打開速度,達到更好的體驗。

Web緩存的類型

在Web應用領域,Web緩存大致可以分爲以下幾種類型:

數據庫數據緩存:Web應用,特別是SNS類型的應用,往往關係比較複雜,數據庫表繁多,如果頻繁進行數據庫查詢,很容易導致數據庫不堪重荷。爲了提供查詢的性能,會將查詢後的數據放到內存中進行緩存,下次查詢時,直接從內存緩存直接返回,提供響應效率。比如常用的緩存方案有memcached等。

瀏覽器端緩存:瀏覽器緩存根據一套與服務器約定的規則進行工作,在同一個會話過程中會檢查一次並確定緩存的副本足夠新。如果你瀏覽過程中,比如前進或後退,訪問到同一個圖片,這些圖片可以從瀏覽器緩存中調出而即時顯現。

服務器端緩存
代理服務器緩存:代理服務器是瀏覽器和源服務器之間的中間服務器,瀏覽器先向這個中間服務器發起Web請求,經過處理後(比如權限驗證,緩存匹配等),再將請求轉發到源服務器。代理服務器緩存的運作原理跟瀏覽器的運作原理差不多,只是規模更大。可以把它理解爲一個共享緩存,不只爲一個用戶服務,一般爲大量用戶提供服務,因此在減少相應時間和帶寬使用方面很有效,同一個副本會被重用多次。常見代理服務器緩存解決方案有Squid等,這裏不再詳述。

CDN緩存:CDN(Content delivery networks)緩存,也叫網關緩存、反向代理緩存。CDN緩存一般是由網站管理員自己部署,爲了讓他們的網站更容易擴展並獲得更好的性能。瀏覽器先向CDN網關發起Web請求,網關服務器後面對應着一臺或多臺負載均衡源服務器,會根據它們的負載請求,動態將請求轉發到合適的源服務器上。雖然這種架構負載均衡源服務器之間的緩存沒法共享,但卻擁有更好的處擴展性。從瀏覽器角度來看,整個CDN就是一個源服務器,從這個層面來說,本文討論瀏覽器和服務器之間的緩存機制,在這種架構下同樣適用。

Web應用層緩存:應用層緩存指的是從代碼層面上,通過代碼邏輯和緩存策略,實現對數據,頁面,圖片等資源的緩存,可以根據實際情況選擇將數據存在文件系統或者內存中,減少數據庫查詢或者讀寫瓶頸,提高響應效率。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章