沒有使用CDN的情況
訪問的過程如圖所示:
1.用戶在自己的瀏覽器輸入要訪問的網站域名。
2.瀏覽器向本地DNS服務器請求對應域名的解析
3.本地DNS服務器中如果緩存有此域名的解析結果,則直接向用戶相應解析結果,如果沒有緩存此域名的解析結果,則以遞歸的方式向整體DNS系統請求解析,獲得結果后應答瀏覽器
4.瀏覽器得到域名解析的結果,就是該域名服務器的IP地址,瀏覽器向此IP發出請求
5.服務端響應請求,把相應的數據傳給瀏覽器
使用CDN時的情況
- 當終端用戶(北京)向
www.a.com
下的某資源發起請求時,首先向LDNS(本地DNS)發起域名解析請求。 - LDNS檢查緩存中是否有
www.a.com
的IP地址記錄。如果有,則直接返回給終端用戶;如果沒有,則向授權DNS查詢。 - 當授權DNS解析
www.a.com
時,返回域名CNAMEwww.a.tbcdn.com
對應IP地址。 - 域名解析請求發送至阿里雲DNS調度系統,並為請求分配最佳節點IP地址。
- LDNS獲取DNS返回的解析IP地址。
- 用戶獲取解析IP地址。
- 用戶向獲取的IP地址發起對該資源的訪問請求。
- 如果該IP地址對應的節點已緩存該資源,則會將數據直接返回給用戶,例如,圖中步驟7和8,請求結束。
- 如果該IP地址對應的節點未緩存該資源,則節點向源站發起對該資源的請求。獲取資源后,結合用戶自定義配置的緩存策略,將資源緩存至節點,例如,圖中的北京節點,並返回給用戶,請求結束。