摘要:二目的是一個(gè)經(jīng)策略性部署的整體系統(tǒng),從技術(shù)上全面解決由于網(wǎng)絡(luò)帶寬小用戶訪問量大網(wǎng)點(diǎn)分布不均而產(chǎn)生的用戶訪問網(wǎng)站響應(yīng)速度慢的根本原因。
一、CDN全稱:
??Content Delivery Network或Content Ddistribute Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。
??二、目的:
??CDN是一個(gè)經(jīng)策略性部署的整體系統(tǒng),從技術(shù)上全面解決由于網(wǎng)絡(luò)帶寬小、用戶訪問量大、網(wǎng)點(diǎn)分布不均而產(chǎn)生的用戶訪問網(wǎng)站響應(yīng)速度慢的根本原因。
??基于此,CDN的特點(diǎn)可以說有
??1. 分布式存儲(chǔ)
??2. 通過智能DNS解析或http重定向?qū)崿F(xiàn)內(nèi)容分發(fā)的負(fù)載均衡
??3. 全局負(fù)載均衡管理與內(nèi)容管理
??三、網(wǎng)站的傳統(tǒng)訪問和使用CDN訪問的對比
??傳統(tǒng)的網(wǎng)站訪問過程為:
????1. 用戶在瀏覽器中輸入要訪問的域名;
????2. 瀏覽器向域名解析服務(wù)器發(fā)出解析請求,獲得此域名對應(yīng)的IP地址;
????3. 瀏覽器利用所得到的IP地址,向該IP對應(yīng)的服務(wù)器發(fā)出訪問請求;
????4. 服務(wù)器對此響應(yīng),將數(shù)據(jù)回傳至用戶瀏覽器端顯示出來。
??與傳統(tǒng)訪問方式不同,CDN網(wǎng)絡(luò)則是在用戶和服務(wù)器之間增加Cache層,將用戶的訪問請求引導(dǎo)到Cache節(jié)點(diǎn)而不是服務(wù)器源站點(diǎn),要實(shí)現(xiàn)這一目的,主要是通過接管DNS實(shí)現(xiàn),下圖為使用CDN緩存后的網(wǎng)站訪問過程:
??????
??使用CDN緩存后的網(wǎng)站訪問過程演變?yōu)椋?br>??1. 用戶在瀏覽器中輸入要訪問的域名;
??2. 瀏覽器向域名解析服務(wù)器發(fā)出解析請求,由于CDN對域名解析過程進(jìn)行了調(diào)整,所以用戶端一般得到的是該域名對應(yīng)的CNAME記錄,此時(shí)瀏覽器需要再次對獲得的CNAME域名進(jìn)行解析才能得到緩存服務(wù)器實(shí)際的IP地址。
??注:在此過程中,全局負(fù)載均衡DNS解析服務(wù)器會(huì)根據(jù)用戶端的源IP地址,如地理位置(深圳還是上海)、接入網(wǎng)類型(電信還是網(wǎng)通)將用戶的訪問請求定位到離用戶路由最短、位置最近、負(fù)載最輕的Cache節(jié)點(diǎn)(緩存服務(wù)器)上,實(shí)現(xiàn)就近定位。定位優(yōu)先原則可按位置、可按路由、也可按負(fù)載等。
??3. 再次解析后瀏覽器得到該域名CDN緩存服務(wù)器的實(shí)際IP地址,向緩存服務(wù)器發(fā)出訪問請求;
??4. 緩存服務(wù)器根據(jù)瀏覽器提供的域名,通過Cache內(nèi)部專用DNS解析得到此域名源服務(wù)器的真實(shí)IP地址,再由緩存服務(wù)器向此真實(shí)IP地址提交訪問請求;
??5. 緩存服務(wù)器從真實(shí)IP地址得到內(nèi)容后,一方面在本地進(jìn)行保存,以備以后使用,同時(shí)把得到的數(shù)據(jù)發(fā)送到客戶端瀏覽器,完成訪問的響應(yīng)過程;
??6. 用戶端得到由緩存服務(wù)器傳回的數(shù)據(jù)后顯示出來,至此完成整個(gè)域名訪問過程。
??四、CDN的優(yōu)勢:
??1. CDN節(jié)點(diǎn)解決了跨運(yùn)營商和跨地域訪問的問題,訪問延時(shí)大大降低;
??2. 大部分請求在CDN邊緣節(jié)點(diǎn)完成,CDN起到了分流作用,減輕了源站的負(fù)載。
??五、緩存
??首先,當(dāng)網(wǎng)站沒有接入CDN時(shí),用戶瀏覽器與服務(wù)器是的交互過程是:
??用戶在瀏覽網(wǎng)站的時(shí)候,瀏覽器能夠在本地保存網(wǎng)站中的圖片或者其他文件的副本,這樣當(dāng)用戶再次訪問該網(wǎng)站的時(shí),瀏覽器就不用重新全部下載的文件,提高了頁面加載的速度。
??如果在這個(gè)過程中間加上一層CDN,那么用戶瀏覽器與服務(wù)器的交互如下:
??客戶端瀏覽器先檢查本地緩存是否過期,如果已經(jīng)過期,則向CDN邊緣節(jié)點(diǎn)發(fā)起請求,CDN邊緣節(jié)點(diǎn)會(huì)檢測用戶請求的數(shù)據(jù)的緩存是否過期,如果沒有過期,則直接響應(yīng)用戶請求,此時(shí)完成一個(gè)http請求;如果請求的數(shù)據(jù)已經(jīng)過期,那么CDN邊緣節(jié)點(diǎn)還需要向源站發(fā)出回源請求(back to the source request),來拉取最新的數(shù)據(jù)。
??六、CDN用于前端性能優(yōu)化
??1. 背景
??瀏覽器是根據(jù)域(Domain)來緩存內(nèi)容資源的,只要域(Domain)不一樣,那么即使是同一個(gè)資源,也需要重復(fù)下載,且使用同樣的方式緩存起來,這就需要占用帶寬和本地緩存空間。
??2. 應(yīng)用
??1) 將靜態(tài)資源緩存到離用戶很近的相同網(wǎng)絡(luò)運(yùn)營商的CDN節(jié)點(diǎn)上。靜態(tài)資源包含JavaScript腳本、CSS樣式表、圖片、圖標(biāo)、Flash等,但不包括html頁面。這些資源的訪問頻率很高,將其緩存在CDN可以極大的提高網(wǎng)站的訪問速度。
??如果服務(wù)器離用戶更近,則HTTP請求和響應(yīng)時(shí)間將縮短。
??不同地區(qū)的用戶訪問同一個(gè)域名能得到不同CDN節(jié)點(diǎn)的IP地址,這要依賴于CDN服務(wù)商提供的智能DNS服務(wù),瀏覽器發(fā)起域名查詢時(shí),智能DNS服務(wù)會(huì)根據(jù)用戶IP計(jì)算并返回離它最近的相同網(wǎng)絡(luò)運(yùn)營商的CDN節(jié)點(diǎn)IP。
??通過智能DNS服務(wù)獲取最近的相同網(wǎng)絡(luò)運(yùn)營商的CDN節(jié)點(diǎn)IP后,不同地區(qū)的用戶會(huì)向離自己最近的相同網(wǎng)絡(luò)運(yùn)營商的CDN節(jié)點(diǎn)發(fā)起請求,當(dāng)請求達(dá)到CDN節(jié)點(diǎn)后,節(jié)點(diǎn)會(huì)判斷自己的內(nèi)容緩存是否有效,一個(gè)地區(qū)內(nèi)只要有一個(gè)用戶先加載資源,就會(huì)在CDN中建立緩存,該地區(qū)的其他后續(xù)用戶都能直接讀取緩存數(shù)據(jù)。
??2) 加載靜態(tài)資源使用與頁面不同的域名(不是用獨(dú)立的二級或三級域名,而是用獨(dú)立的一級域名)
??靜態(tài)資源和主頁面不同域,加載靜態(tài)資源的HTTP請求就不會(huì)帶上主頁面中的cookie等數(shù)據(jù),減少了數(shù)據(jù)傳輸量,節(jié)省流量,提升上傳效率。
參考文章:
web網(wǎng)站加速之CDN技術(shù)原理
CDN與傳統(tǒng)網(wǎng)站訪問對比
一張圖說明CDN網(wǎng)絡(luò)的原理
CDN緩存那些事
淺談前端性能優(yōu)化(六)——CDN內(nèi)容分發(fā)網(wǎng)絡(luò)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/97187.html
摘要:騰訊云騰訊云支持全網(wǎng)加密傳輸,支持配置防盜鏈黑白名單單單節(jié)點(diǎn)限制等,抵御惡意用戶。小結(jié)在特色功能上三家各有千秋,在數(shù)據(jù)分析等方面三家都具備,在安全性上阿里云和騰訊云不錯(cuò),在簡單易用方面騰訊云有優(yōu)勢。 如今,云計(jì)算產(chǎn)品越來越多,像國內(nèi)的BAT三大巨頭都提供了云主機(jī)(騰訊云CVM、阿里云ECS、百度云BCC),另外還有存儲(chǔ)、數(shù)據(jù)庫、安全等相關(guān)云服務(wù)。在這其中,CDN也是一項(xiàng)重要的云服務(wù),C...
摘要:性能訪問字面量和局部變量的速度是最快的,訪問數(shù)組和對象成員相對較慢變量標(biāo)識(shí)符解析過程搜索執(zhí)行環(huán)境的作用域鏈,查找同名標(biāo)識(shí)符。建議將全局變量存儲(chǔ)到局部變量,加快讀寫速度。優(yōu)化建議將常用的跨作用域變量存儲(chǔ)到局部變量,然后直接訪問局部變量。 缺陷 這本書是2010年出版的,這本書談性能是有時(shí)效性的,現(xiàn)在馬上就2018年了,這幾年前端發(fā)展的速度是飛快的,書里面還有一些內(nèi)容考慮IE6、7、8的東...
摘要:最近在全力整理高性能的文檔,并重新學(xué)習(xí)一遍,放在這里方便大家查看并找到自己需要的知識(shí)點(diǎn)。 最近在全力整理《高性能JavaScript》的文檔,并重新學(xué)習(xí)一遍,放在這里方便大家查看并找到自己需要的知識(shí)點(diǎn)。 前端開發(fā)文檔 高性能JavaScript 第1章:加載和執(zhí)行 腳本位置 阻止腳本 無阻塞的腳本 延遲的腳本 動(dòng)態(tài)腳本元素 XMLHTTPRequest腳本注入 推薦的無阻塞模式...
摘要:高性能小結(jié)文章轉(zhuǎn)載于我的博客最近看完了動(dòng)物叢書的高性能,覺得那本書的小結(jié)部分寫得非常不錯(cuò),簡潔輕快易懂概括性很強(qiáng)。由于局部變量存在于作用域鏈的起始位置,因此訪問局部變量比訪問跨作用域變量更快。 高性能javascript小結(jié) 文章轉(zhuǎn)載于我的CSDN博客:http://blog.csdn.net/hello_world_20/article/details/46793317 最近看完了動(dòng)...
閱讀 1495·2023-04-26 01:28
閱讀 3314·2021-11-22 13:53
閱讀 1420·2021-09-04 16:40
閱讀 3189·2019-08-30 15:55
閱讀 2676·2019-08-30 15:54
閱讀 2488·2019-08-30 13:47
閱讀 3365·2019-08-30 11:27
閱讀 1145·2019-08-29 13:21