在瀏覽器輸入URL後,執行的全部過程
在瀏覽器輸入URL後,執行的全部過程
整個流程如下:
1.域名解析
2. 發起TCP的3次握手
3. 建立TCP連線後發起http請求
4. 伺服器響應http請求
5. 瀏覽器解析html程式碼,並請求html程式碼中的資源(如js,css,圖片等)
6. 斷開TCP連線
7. 瀏覽器對頁面進行渲染呈現給使用者
域名解析
1.瀏覽器查詢自己的DNS快取
2.本地作業系統的DNS快取
3.作業系統的hosts檔案(一張維護域名與IP地址的對應表)
4.本地域名伺服器
4.1 根域名伺服器,返回頂級域名伺服器的地址
4.2 頂級域名伺服器,返回許可權伺服器的地址
4.3 許可權域名伺服器,返回對應的IP地址
5.本地域名伺服器拿到了IP地址,返回給作業系統,並將其快取
6.作業系統將IP返回給瀏覽器,並將其快取
7.瀏覽器拿到對應的IP,並將其快取
發起TCP的3次握手
謂三次握手(Three-way Handshake),是指建立一個TCP連線時,需要客戶端和伺服器總共傳送3個包。
三次握手的目的是連線伺服器指定埠,建立TCP連線,並同步連線雙方的序列號和確認號並交換 TCP 視窗大小資訊.在socket程式設計中,客戶端執行connect()時。將觸發三次握手。
第一次握手:客戶端傳送syn報文,並置傳送序號為X
第二次握手:服務端傳送syn+ack報文,並置傳送序號為Y,再確認序號為X+1
第三次握手:客戶廟傳送ack報文,並置傳送序號為Z,再確認序號為Y+1
建立TCP連線後發起http請求
客戶端向伺服器傳送請求報文
伺服器響應http請求
伺服器收到請求報文,並向客戶端傳送響應報文
瀏覽器解析html程式碼,並請求html程式碼中的資源(如js,css,圖片等)
瀏覽器接收響應報文,並根據html中的資源下載對應的js,css,圖片等資源。
斷開TCP連線
通過四次揮手,斷開TCP連線
四次揮手:
1.主動方發起斷開連線的請求
2.被動方響應,告知已經收到斷開連線的請求,等資料傳送完畢就斷開連線
3.被動方告知主動言,資料已經發送完畢,可以斷開連線了
4.收到,斷開連線
瀏覽器對頁面進行渲染呈現給使用者
瀏覽器通過引擎將頁面渲染出來,呈現給使用者
參考資源:
http://www.cnblogs.com/zmlctt/p/3690998.html
https://blog.csdn.net/qq_21993785/article/details/81188253