您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)Web緩存的作用有哪些,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
什么是Web緩存
Web緩存是指一個(gè)Web資源(如html頁(yè)面,圖片,js,數(shù)據(jù)等)存在于Web服務(wù)器和客戶端(瀏覽器)之間的副本。緩存會(huì)根據(jù)進(jìn)來(lái)的請(qǐng)求保存輸出內(nèi)容的副本;當(dāng)下一個(gè)請(qǐng)求來(lái)到的時(shí)候,如果是相同的URL,緩存會(huì)根據(jù)緩存機(jī)制決定是直接使用副本響應(yīng)訪問(wèn)請(qǐng)求,還是向源服務(wù)器再次發(fā)送請(qǐng)求。比較常見的就是瀏覽器會(huì)緩存訪問(wèn)過(guò)網(wǎng)站的網(wǎng)頁(yè),當(dāng)再次訪問(wèn)這個(gè)URL地址的時(shí)候,如果網(wǎng)頁(yè)沒有更新,就不會(huì)再次下載網(wǎng)頁(yè),而是直接使用本地緩存的網(wǎng)頁(yè)。只有當(dāng)網(wǎng)站明確標(biāo)識(shí)資源已經(jīng)更新,瀏覽器才會(huì)再次下載網(wǎng)頁(yè)。
Web緩存的作用
使用Web緩存的作用其實(shí)是非常顯而易見的:
減少網(wǎng)絡(luò)帶寬消耗:無(wú)論對(duì)于網(wǎng)站運(yùn)營(yíng)者或者用戶,帶寬都代表著金錢,過(guò)多的帶寬消耗,只會(huì)便宜了網(wǎng)絡(luò)運(yùn)營(yíng)商。當(dāng)Web緩存副本被使用時(shí),只會(huì)產(chǎn)生極小的網(wǎng)絡(luò)流量,可以有效的降低運(yùn)營(yíng)成本。
降低服務(wù)器壓力:給網(wǎng)絡(luò)資源設(shè)定有效期之后,用戶可以重復(fù)使用本地的緩存,減少對(duì)源服務(wù)器的請(qǐng)求,間接降低服務(wù)器的壓力。同時(shí),搜索引擎的爬蟲機(jī)器人也能根據(jù)過(guò)期機(jī)制降低爬取的頻率,也能有效降低服務(wù)器的壓力。
減少網(wǎng)絡(luò)延遲,加快頁(yè)面打開速度:帶寬對(duì)于個(gè)人網(wǎng)站運(yùn)營(yíng)者來(lái)說(shuō)是十分重要,而對(duì)于大型的互聯(lián)網(wǎng)公司來(lái)說(shuō),可能有時(shí)因?yàn)殄X多而真的不在乎。那Web緩存還有作用嗎?答案是肯定的,對(duì)于最終用戶,緩存的使用能夠明顯加快頁(yè)面打開速度,達(dá)到更好的體驗(yàn)。
Web緩存的類型
在Web應(yīng)用領(lǐng)域,Web緩存大致可以分為以下幾種類型:
數(shù)據(jù)庫(kù)數(shù)據(jù)緩存:Web應(yīng)用,特別是SNS類型的應(yīng)用,往往關(guān)系比較復(fù)雜,數(shù)據(jù)庫(kù)表繁多,如果頻繁進(jìn)行數(shù)據(jù)庫(kù)查詢,很容易導(dǎo)致數(shù)據(jù)庫(kù)不堪重荷。為了提供查詢的性能,會(huì)將查詢后的數(shù)據(jù)放到內(nèi)存中進(jìn)行緩存,下次查詢時(shí),直接從內(nèi)存緩存直接返回,提供響應(yīng)效率。比如常用的緩存方案有memcached等。
瀏覽器端緩存:瀏覽器緩存根據(jù)一套與服務(wù)器約定的規(guī)則進(jìn)行工作,在同一個(gè)會(huì)話過(guò)程中會(huì)檢查一次并確定緩存的副本足夠新。如果你瀏覽過(guò)程中,比如前進(jìn)或后退,訪問(wèn)到同一個(gè)圖片,這些圖片可以從瀏覽器緩存中調(diào)出而即時(shí)顯現(xiàn)。
服務(wù)器端緩存
代理服務(wù)器緩存:代理服務(wù)器是瀏覽器和源服務(wù)器之間的中間服務(wù)器,瀏覽器先向這個(gè)中間服務(wù)器發(fā)起Web請(qǐng)求,經(jīng)過(guò)處理后(比如權(quán)限驗(yàn)證,緩存匹配等),再將請(qǐng)求轉(zhuǎn)發(fā)到源服務(wù)器。代理服務(wù)器緩存的運(yùn)作原理跟瀏覽器的運(yùn)作原理差不多,只是規(guī)模更大??梢园阉斫鉃橐粋€(gè)共享緩存,不只為一個(gè)用戶服務(wù),一般為大量用戶提供服務(wù),因此在減少相應(yīng)時(shí)間和帶寬使用方面很有效,同一個(gè)副本會(huì)被重用多次。常見代理服務(wù)器緩存解決方案有Squid等,這里不再詳述。
CDN緩存:CDN(Content delivery networks)緩存,也叫網(wǎng)關(guān)緩存、反向代理緩存。CDN緩存一般是由網(wǎng)站管理員自己部署,為了讓他們的網(wǎng)站更容易擴(kuò)展并獲得更好的性能。瀏覽器先向CDN網(wǎng)關(guān)發(fā)起Web請(qǐng)求,網(wǎng)關(guān)服務(wù)器后面對(duì)應(yīng)著一臺(tái)或多臺(tái)負(fù)載均衡源服務(wù)器,會(huì)根據(jù)它們的負(fù)載請(qǐng)求,動(dòng)態(tài)將請(qǐng)求轉(zhuǎn)發(fā)到合適的源服務(wù)器上。雖然這種架構(gòu)負(fù)載均衡源服務(wù)器之間的緩存沒法共享,但卻擁有更好的處擴(kuò)展性。從瀏覽器角度來(lái)看,整個(gè)CDN就是一個(gè)源服務(wù)器,從這個(gè)層面來(lái)說(shuō),本文討論瀏覽器和服務(wù)器之間的緩存機(jī)制,在這種架構(gòu)下同樣適用。
Web應(yīng)用層緩存:應(yīng)用層緩存指的是從代碼層面上,通過(guò)代碼邏輯和緩存策略,實(shí)現(xiàn)對(duì)數(shù)據(jù),頁(yè)面,圖片等資源的緩存,可以根據(jù)實(shí)際情況選擇將數(shù)據(jù)存在文件系統(tǒng)或者內(nèi)存中,減少數(shù)據(jù)庫(kù)查詢或者讀寫瓶頸,提高響應(yīng)效率。
看完上述內(nèi)容,你們對(duì)Web緩存的作用有哪些有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。