在地址欄數日地址後你按回車的流程
地址解析:瀏覽器先判斷輸入的地址是IP地址還是域名。若為域名(如www.baidu.com),則發起DNS查詢,將域名解析為對應的IP地址(依賴DNS協議,屬於應用層);若為IP地址,直接跳過此步驟。

建立TCP連接:瀏覽器通過解析得到的IP地址,與目標Web服務器的80端口(HTTP協議默認)或443端口(HTTPS協議默認)建立TCP連接,過程需經過“三次握手”(確保雙方收發能力正常)。

發送HTTP請求:TCP連接建立後,瀏覽器作為客户端,按照HTTP協議規範構建請求報文(包含請求方法、請求頭、請求體等),並通過TCP連接發送給Web服務器。

服務器處理請求並返回響應:Web服務器接收HTTP請求後,根據請求內容處理業務邏輯(如查詢數據庫、讀取靜態資源等),然後構建HTTP響應報文(包含狀態碼、響應頭、響應體等),通過TCP連接返回給瀏覽器。

瀏覽器渲染頁面:瀏覽器接收響應報文後,解析響應體中的內容(如HTML、CSS、JavaScript等),並執行渲染流程,最終將網頁內容展示給用户。

斷開TCP連接:頁面渲染完成後,若沒有後續請求,TCP連接會通過“四次揮手”的方式斷開,釋放網絡資源。
(一)三次握手(TCP連接建立過程)

定義:TCP協議中,客户端與服務器建立可靠連接的三次交互過程。

三次握手作用:確保客户端和服務器的接收、發送請求功能均正常,成功建立連接。

  1. 第一次握手(客户端→服務器):客户端向服務器發送請求,服務器通過接收該請求,確認客户端發送功能正常、自身接收功能正常。
  2. 第二次握手(服務器→客户端):服務器向客户端回覆響應,客户端通過接收該響應,確認自己的發送、接收功能正常,同時確認服務器的發送、接收功能正常。
  3. 第三次握手(客户端→服務器):客户端向服務器發送最終確認,服務器通過接收該確認,確認客户端和自己的接收、發送功能均正常,連接正式建立。

關於http的請求和響應_客户端

(二)四次揮手(TCP連接斷開過程)

定義:TCP協議中,客户端與服務器終止已建立連接的四次交互過程。

四次揮手作用:安全關閉客户端與服務器之間的連接,確保數據傳輸完整。

  1. 第一次揮手(客户端→服務器):客户端向服務器發送FIN(結束)+ACK(確認)報文,請求斷開連接,服務器接收該報文。
  2. 第二次揮手(服務器→客户端):服務器接收FIN報文後,向客户端發送ACK報文,確認收到斷開請求,此時客户端到服務器的連接關閉;服務器狀態變為CLOSE_WAIT,客户端狀態變為FIN_WAIT_2(客户端需等待服務器剩餘數據傳輸完成)。
  3. 第三次揮手(服務器→客户端):服務器完成所有數據傳輸後,向客户端發送FIN報文,表明服務器也不再發送數據,請求斷開連接;此時服務器狀態變為LAST_ACK。
  4. 第四次揮手(客户端→服務器):客户端接收FIN報文後,向服務器發送ACK報文,確認接收服務器的斷開請求(確認號=服務器FIN序列號+1);此時客户端狀態變為TIME_WAIT(等待一段時間確保服務器收到確認,避免殘留報文干擾),服務器接收ACK後狀態變為CLOSED;客户端等待超時後,狀態也變為CLOSED,連接正式斷開。

關於http的請求和響應_TCP_02

為什麼是三次握手而不是二次/四次?

關於http的請求和響應_客户端_03