1 傳統訪問頁面方式瀏覽器
(1) 用戶提交域名緩存
(2) 瀏覽器對域名解析,找不到對於的IP;再到操做系統,仍是沒有;再到路由器,服務器
再沒有就到DNS服務器找負載均衡
(3) 最後找到對應的IP地址,向域名的服務主機發出數據訪問請求網站
(4) 服務器就返回頁面的內容給客戶端操作系統
可是在這裏的問題就是若是訪問量很大的網站的話,好比新浪微博、facebook等大型網站,這樣子的服務器確定會被擠爆了,那怎麼辦呢?緩衝或者說是存儲這種理念在馮·諾依曼提出以後就特別流行,確實,CDN也是採用緩存的理念內存
2 CDN緩存後的網站的訪問過程路由
(1) 用戶向瀏覽器提供要訪問的域名;域名
(2) 瀏覽器調用域名解析庫對域名進行解析獲得CNAME,再解析CNAME域名獲取IP地址,微博
在此過程當中,使用的全局負載均衡DNS解析,如根據地理位置信息解析對應的IP地址,
使得用戶能就近訪問;
(3) 此次解析到只是CDN服務器的IP地址,瀏覽器獲取這個IP地址就向CDN緩存發送請求;
(4) CDN緩存服務器根據瀏覽器提供的要訪問的域名,經過Cache內部專用DNS解析獲得
此域名的實際 IP地址,再由緩存服務器向此實際IP地址提交訪問請求,緩存服務器就好
像是中間人那樣子;
(5) CDN緩存服務器獲取內容後,一方面在本地存儲,以便客戶端下次訪問;另一方面
就發送給客戶端;
(6) 客戶端就把從CDN緩存服務器返回的內容顯示,下次訪問就直接訪問CDN緩存服務器。
其實從上面就好像咱們的計算機要訪問數據那樣子,由於CPU的運算能力很快,快到內存根本跟不上。若是CPU每次運算一下就要去內存獲取數據的話,那麼計算機的效率過低了。這樣子的話,咱們設置緩存,可以緩衝二者速度不匹配而致使的效率問題。因此CPU要訪問數據,先到緩存中找,找不到就去內存中找,而後在緩存中添加對應的數據,下次要訪問改數據就直接到緩存中找就好了。