1. 程式人生 > >淺談web請求過程

淺談web請求過程

java常用 .com 域名 解析 鏈路 web 主域 name 分布

1,B/S網絡架構描述

  B/S網絡架構基於統一的應用層協議HTTP來交互數據,HTTP協議采用無狀態短鏈接的通信方式,一次請求完成一次數據交互

采用這種方式可以同時服務更多的用戶。

  當用戶輸入url時,DNS把這個域名解析成對應的ip地址,然後在訪問此IP地址對應的服務器,向服務器發送一個get請求,由服務器返回默認的數據資源,數據可以為分布式的,一般靜態資源存放在CDN服務器中。

  CDN(content delivery network):它是構築在現有的internet上的一種先進的流量分配網絡,它可以將網站內容發布到最接近用戶的網絡邊緣,使用戶就近取得所需內容。CDN=鏡像+緩存+整體負載均衡

2,發起請求

  發起一個HTTP請求和建立一個Socket連接區別不大,本質上就是建立Socket連接,java常用的發起Http請求的包:HttpClient

3,HTTP協議解析

  常見請求頭,響應頭,狀態碼:

技術分享圖片

技術分享圖片

4,域名解析

  用戶發起請求,首先查找系統緩存中是否有DNS解析的結果,windows的緩存文件路徑:C:\Windows\System32\drivers\etc\hosts,Linux:/etc/named.conf,如果沒有再訪問Local DNS服務器(DNS服務器由網絡提供者提供),如果還是未命中就直接到root Server 域名服務器請求解析,根域名服務器返回給本地域名服務器一個所查詢域的主域名服務器(gTLD server)

gTLD是國際頂級域名服務器,gTLD返回一個name server域名服務器,再訪問這個服務器獲得該域名的ip值和TTL值(域名解析緩存的時間由TTL控制)(name server可能有多級,或者一個GTM來負載均衡控制)

技術分享圖片

  5,CDN架構

  技術分享圖片

    公司自己的DNS服務器會把請求重新別名解析到CDN全局中的DNS負載均衡服務器,再由GTM最終分配返回離用戶最近的節點。

6,負載均衡

  常見的負載均衡有:鏈路負載均衡,集群負載均衡,操作系統負載均衡

技術分享圖片

(ps:內容來自書《深入分析Java web技術內幕》,歸納備忘)

淺談web請求過程