淺談web請求過程
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請求過程