日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

【W(wǎng)eb緩存機制系列】1 – Web緩存的作用與類型 | Web前端 騰訊AlloyTeam Blog | 愿景: 成為地球卓越的Web團隊!

 ThinkTank_引擎 2016-06-12

====索引=====

【W(wǎng)eb緩存機制系列】1 – Web緩存的作用與類型

【W(wǎng)eb緩存機制系列】2 – Web瀏覽器的緩存機制

【W(wǎng)eb緩存機制系列】3 – 如何構(gòu)建可緩存站點

【W(wǎng)eb緩存機制系列】4 – HTML5時代的Web緩存機制

【W(wǎng)eb緩存機制系列】5 – Web App時代的緩存機制新思路

【W(wǎng)eb緩存機制系列】6 – 進擊的Hybrid App,量身定做緩存機制

============

前言&摘要

這段時間的工作內(nèi)容主要是為一個客戶端類型的產(chǎn)品增加文檔在線存儲和文檔在線預(yù)覽相關(guān)特性。由于測試的同事比較細心和專業(yè),發(fā)現(xiàn)了項目實現(xiàn)中一些效率低下的環(huán)節(jié),比如在線預(yù)覽圖片沒有經(jīng)過壓縮、重開打開同一張圖片沒有有效利用Web緩存等問題。而這些細節(jié)問題往往在做項目架構(gòu)時,容易因為時間緊張等等因素而被忽略。雖然以前也有一些關(guān)于Web緩存的意識,但并沒有很系統(tǒng)的了解、總結(jié),并在項目中進行合理的運用。借此機會,整理了一些相關(guān)資料和項目的實際應(yīng)用實踐,做個備忘,便于在日后的項目查詢和應(yīng)用。

本文從Web緩存的定義、作用、分類、工作機制等方面介紹了目前常用的Web緩存及其原理,并給出如何構(gòu)建有效利用Web緩存的站點。最后探討了在HTML5和Web App、Web Game逐漸盛行的今天,現(xiàn)代瀏覽器給我們提供哪些有利于Web緩存、提高訪問效率的機制,前端的代碼架構(gòu)又能從哪些方面進行調(diào)整,更好的利用Web緩存等問題。

什么是Web緩存

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

 

Web緩存的作用

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

減少網(wǎng)絡(luò)帶寬消耗

無論對于網(wǎng)站運營者或者用戶,帶寬都代表著金錢,過多的帶寬消耗,只會便宜了網(wǎng)絡(luò)運營商。當Web緩存副本被使用時,只會產(chǎn)生極小的網(wǎng)絡(luò)流量,可以有效的降低運營成本。

降低服務(wù)器壓力

給網(wǎng)絡(luò)資源設(shè)定有效期之后,用戶可以重復(fù)使用本地的緩存,減少對源服務(wù)器的請求,間接降低服務(wù)器的壓力。同時,搜索引擎的爬蟲機器人也能根據(jù)過期機制降低爬取的頻率,也能有效降低服務(wù)器的壓力。

減少網(wǎng)絡(luò)延遲,加快頁面打開速度

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

 

Web緩存的類型

在Web應(yīng)用領(lǐng)域,Web緩存大致可以分為以下幾種類型:

數(shù)據(jù)庫數(shù)據(jù)緩存

Web應(yīng)用,特別是SNS類型的應(yīng)用,往往關(guān)系比較復(fù)雜,數(shù)據(jù)庫表繁多,如果頻繁進行數(shù)據(jù)庫查詢,很容易導(dǎo)致數(shù)據(jù)庫不堪重荷。為了提供查詢的性能,會將查詢后的數(shù)據(jù)放到內(nèi)存中進行緩存,下次查詢時,直接從內(nèi)存緩存直接返回,提供響應(yīng)效率。比如常用的緩存方案有memcached等。  

服務(wù)器端緩存

 代理服務(wù)器緩存

代理服務(wù)器是瀏覽器和源服務(wù)器之間的中間服務(wù)器,瀏覽器先向這個中間服務(wù)器發(fā)起Web請求,經(jīng)過處理后(比如權(quán)限驗證,緩存匹配等),再將請求轉(zhuǎn)發(fā)到源服務(wù)器。代理服務(wù)器緩存的運作原理跟瀏覽器的運作原理差不多,只是規(guī)模更大??梢园阉斫鉃橐粋€共享緩存,不只為一個用戶服務(wù),一般為大量用戶提供服務(wù),因此在減少相應(yīng)時間和帶寬使用方面很有效,同一個副本會被重用多次。常見代理服務(wù)器緩存解決方案有Squid等,這里不再詳述。

 CDN緩存

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

 

瀏覽器端緩存

瀏覽器緩存根據(jù)一套與服務(wù)器約定的規(guī)則進行工作,在同一個會話過程中會檢查一次并確定緩存的副本足夠新。如果你瀏覽過程中,比如前進或后退,訪問到同一個圖片,這些圖片可以從瀏覽器緩存中調(diào)出而即時顯現(xiàn)。

 

Web應(yīng)用層緩存

應(yīng)用層緩存指的是從代碼層面上,通過代碼邏輯和緩存策略,實現(xiàn)對數(shù)據(jù),頁面,圖片等資源的緩存,可以根據(jù)實際情況選擇將數(shù)據(jù)存在文件系統(tǒng)或者內(nèi)存中,減少數(shù)據(jù)庫查詢或者讀寫瓶頸,提高響應(yīng)效率。

 

后續(xù)將從Web前端的角度討論瀏覽器緩存機制、前端應(yīng)用層緩存。 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多