瀏覽器中輸入URL後,執行的全部過程。會用到哪些協議?(一次完整的HTTP請求過程)

一次完整的HTTP請求過程:

1.首先進行域名解析,域名解析具體過程講一下:

  • 瀏覽器搜索自己的DNS緩存,緩存中維護一張域名與IP地址的對應表;

  • 若沒有,則搜索操作系統的DNS緩存;

  • 若沒有,則操作系統將域名發送至本地域名服務器(遞歸查詢方式),本地域名服務器查詢自己的DNS緩存,查找成功則返回結果,否則,通過以下方式迭代查找:

    本地域名服務器向根域名服務器發起請求,根域名服務器返回com域的頂級域名服務器的地址;

    本地域名服務器向com域的頂級域名服務器發起請求,返回權限域名服務器地址;

    本地域名服務器向權限域名服務器發起請求,得到IP地址;

  • 本地域名服務器將得到的IP地址返回給操作系統,同時自己將IP地址緩存起來;

  • 操作系統將IP地址返回給瀏覽器,同時自己也將IP地址緩存起來;

  • 至此,瀏覽器已經得到了域名對應的IP地址。

2.瀏覽器發起HTTP請求;

3.接下來到了傳輸層,選擇傳輸協議,TCP或者UDP,TCP是可靠的傳輸控制協議,對HTTP請求進行封裝,加入了端口號等信息;

4.然後到了網絡層,通過IP協議將IP地址封裝爲IP數據報;然後此時會用到ARP協議,主機發送信息時將包含目標IP地址的ARP請求廣播到網絡上的所有主機,並接收返回消息,以此確定目標的物理地址,找到目的MAC地址;

5.接下來到了數據鏈路層,把網絡層交下來的IP數據報添加首部和尾部,封裝爲MAC幀,現在根據目的mac開始建立TCP連接,三次握手,接收端在收到物理層上交的比特流後,根據首尾的標記,識別幀的開始和結束,將中間的數據部分上交給網絡層,然後層層向上傳遞到應用層;

6.服務器響應請求並請求客戶端要的資源,傳回給客戶端;

  • 負載均衡:網站可能會有負載均衡設備來平均分配所有用戶的請求。即對工作任務進行平衡分攤到多個操作單元上執行,如圖片服務器,應用服務器等。
  • 請求處理閱讀請求及它的參數和 cookies

7.斷開TCP連接(四次揮手),瀏覽器對頁面進行渲染呈現給客戶端。

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