瀏覽器發起請求的整個過程

域名解析——TCP三次握手——IP層發起http請求——服務器響應http請求,返回結果——瀏覽器解析html,請求具體的資源文件——瀏覽器對頁面進行渲染

DNS解析

DNS 是因特網使用的命名系統,採用客戶/服務器模型,協議是udp 協議,使用53號端口

先找自身緩存——找到根域名服務器層層向下查找,找到後層層返回,緩存

  1. 客戶機向本地域名服務器發起DNS請求報文
  2. 本地域名服務器接到請求後,查看本地緩存(比如瀏覽器chrome://chrome-urls),假設沒有該記錄,則以DNS客戶身份向根域名服務器發起解析請求,
  3. 根域名服務器收到請求後 =》 查看頂級域名 =》 權限域名,遞歸查詢

4.dns解析的過程中返回了可用的url,比如說淘寶會將所有可能的相關的域名都買下來,然後當發出dns解析的時候,會將這些域名都會被重定向到www.taobao.com這個正確的域名,瀏覽器一直都是默認的http協議 和80端口,服務器做的事情是使用http協議並監聽80端口,等待請求,把請求轉化爲https協議和對應的443端口。更多:https://blog.csdn.net/hydro88/article/details/87934150

TCP三次握手

傳輸層的TCP協議是端到端的可靠的面向連接的協議,首先服務端會啓動服務Listened狀態,準備接受請求
1.客戶端起始狀態Closed,發出SYN=1 seq=x,發出後狀態變爲SYN-SENT
2.服務端收到後 返回確認信息SYN=1 ACK=1 seq=y ack=x+1, 發出後狀態變爲SYN-RCVD
3.客戶端收到確認後發起真正的http請求 ACK=1 seq=x+1 ack=y+1,客戶端狀態變爲ESTABLISHED
4.服務端收到確認後,狀態變爲ESTABLISHED,建立TCP連接成功
5.服務端給瀏覽器返回需要的html文件
6.瀏覽器進行解析,並下載所需的css js 圖片資源包,進行渲染
7.四次揮手斷開tcp連接

TCP四次揮手

1、Client發起斷開請求FIN=1 seq=w 狀態變爲FIN-WAIT1
2、Server收到後立即返回ACK=1 seq=v ack=w+1 發出後狀態變爲CLOSED-WAIT
3、Client收到確認信息 狀態變爲FIN-WAIT2
4、Server發送完畢後發起斷開 FIN=1 ACK=1 seq=u ack=w+1 發出後狀態變爲LAST-ACK
5、Client收到後發出確認關閉 ACK=1 seq=w+1 ack=u+1 後進入TIME-WAIT狀態,2msl後進入CLOSED狀態
6、Server收到確認後 進入CLOSED狀態
注:等待2ms是爲了防止server收不到client最後發的確認消息,而導致半連接的請求未關閉,會導致資源的溢出,甚至殘留的數據錯誤。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章