1、CDN全稱:
Content Delivery Network或Content Ddistribute Network,即內容分發網絡。html
2、目的:
CDN是一個經策略性部署的總體系統,從技術上全面解決因爲網絡帶寬小、用戶訪問量大、網點分佈不均而產生的用戶訪問網站響應速度慢的根本緣由。
基於此,CDN的特色能夠說有
1. 分佈式存儲
2. 經過智能DNS解析或http重定向實現內容分發的負載均衡
3. 全局負載均衡管理與內容管理前端
3、網站的傳統訪問和使用CDN訪問的對比web
傳統的網站訪問過程爲:
1. 用戶在瀏覽器中輸入要訪問的域名;
2. 瀏覽器向域名解析服務器發出解析請求,得到此域名對應的IP地址;
3. 瀏覽器利用所獲得的IP地址,向該IP對應的服務器發出訪問請求;
4. 服務器對此響應,將數據回傳至用戶瀏覽器端顯示出來。瀏覽器
與傳統訪問方式不一樣,CDN網絡則是在用戶和服務器之間增長Cache層,將用戶的訪問請求引導到Cache節點而不是服務器源站點,要實現這一目的,主要是經過接管DNS實現,下圖爲使用CDN緩存後的網站訪問過程:緩存
使用CDN緩存後的網站訪問過程演變爲:
1. 用戶在瀏覽器中輸入要訪問的域名;
2. 瀏覽器向域名解析服務器發出解析請求,因爲CDN對域名解析過程進行了調整,因此用戶端通常獲得的是該域名對應的CNAME記錄,此時瀏覽器須要再次對得到的CNAME域名進行解析才能獲得緩存服務器實際的IP地址。
注:在此過程當中,全局負載均衡DNS解析服務器會根據用戶端的源IP地址,如地理位置(深圳仍是上海)、接入網類型(電信仍是網通)將用戶的訪問請求定位到離用戶路由最短、位置最近、負載最輕的Cache節點(緩存服務器)上,實現就近定位。定位優先原則可按位置、可按路由、也可按負載等。
3. 再次解析後瀏覽器獲得該域名CDN緩存服務器的實際IP地址,向緩存服務器發出訪問請求;
4. 緩存服務器根據瀏覽器提供的域名,經過Cache內部專用DNS解析獲得此域名源服務器的真實IP地址,再由緩存服務器向此真實IP地址提交訪問請求;
5. 緩存服務器從真實IP地址獲得內容後,一方面在本地進行保存,以備之後使用,同時把獲得的數據發送到客戶端瀏覽器,完成訪問的響應過程;
6. 用戶端獲得由緩存服務器傳回的數據後顯示出來,至此完成整個域名訪問過程。性能優化
4、CDN的優點:
1. CDN節點解決了跨運營商和跨地域訪問的問題,訪問延時大大下降;
2. 大部分請求在CDN邊緣節點完成,CDN起到了分流做用,減輕了源站的負載。服務器
5、緩存
首先,當網站沒有接入CDN時,用戶瀏覽器與服務器是的交互過程是:cookie
用戶在瀏覽網站的時候,瀏覽器可以在本地保存網站中的圖片或者其餘文件的副本,這樣當用戶再次訪問該網站的時,瀏覽器就不用從新所有下載的文件,提升了頁面加載的速度。
若是在這個過程當中間加上一層CDN,那麼用戶瀏覽器與服務器的交互以下:網絡
客戶端瀏覽器先檢查本地緩存是否過時,若是已通過期,則向CDN邊緣節點發起請求,CDN邊緣節點會檢測用戶請求的數據的緩存是否過時,若是沒有過時,則直接響應用戶請求,此時完成一個http請求;若是請求的數據已通過期,那麼CDN邊緣節點還須要向源站發出回源請求(back to the source request),來拉取最新的數據。負載均衡
6、CDN用於前端性能優化
1. 背景
瀏覽器是根據域(Domain)來緩存內容資源的,只要域(Domain)不同,那麼即便是同一個資源,也須要重複下載,且使用一樣的方式緩存起來,這就須要佔用帶寬和本地緩存空間。
2. 應用
1) 將靜態資源緩存到離用戶很近的相同網絡運營商的CDN節點上。靜態資源包含JavaScript腳本、CSS樣式表、圖片、圖標、Flash等,但不包括html頁面。這些資源的訪問頻率很高,將其緩存在CDN能夠極大的提升網站的訪問速度。
若是服務器離用戶更近,則HTTP請求和響應時間將縮短。
不一樣地區的用戶訪問同一個域名能獲得不一樣CDN節點的IP地址,這要依賴於CDN服務商提供的智能DNS服務,瀏覽器發起域名查詢時,智能DNS服務會根據用戶IP計算並返回離它最近的相同網絡運營商的CDN節點IP。
經過智能DNS服務獲取最近的相同網絡運營商的CDN節點IP後,不一樣地區的用戶會向離本身最近的相同網絡運營商的CDN節點發起請求,當請求達到CDN節點後,節點會判斷本身的內容緩存是否有效,一個地區內只要有一個用戶先加載資源,就會在CDN中創建緩存,該地區的其餘後續用戶都能直接讀取緩存數據。
2) 加載靜態資源使用與頁面不一樣的域名(不是用獨立的二級或三級域名,而是用獨立的一級域名)
靜態資源和主頁面不一樣域,加載靜態資源的HTTP請求就不會帶上主頁面中的cookie等數據,減小了數據傳輸量,節省流量,提高上傳效率。
參考文章:
web網站加速之CDN技術原理
CDN與傳統網站訪問對比
一張圖說明CDN網絡的原理
CDN緩存那些事
淺談前端性能優化(六)——CDN內容分發網絡