通過域名訪問服務器過程

1.域名解析

  • 首先你在客戶端(瀏覽器)輸入一個域名:www.baidu.com,然後就要對這個域名進行解析。客戶端向本地的DNS服務器發起一個請求,本地DNS服務器 首先會查看緩存記錄,就是域名與ip的對應關係。如果緩存中有該條記錄(有輸入的域名),就會將對應ip返回給客戶端。
  • 本地DNS服務器緩存中沒有記錄,本地DNS服務器就會向根DNS服務器發起請求,根DNS服務器中有域名與ip的對應關係記錄,如果根DNS服務器中有該條記錄(有輸入的域名),就會將對應ip返回給客戶端。
  • 根DNS服務器中沒有域名與ip的對應關係記錄,它會返回給本地DNS服務器一條消息,你可以向 .com域服務器發請求。
  • .com域服務器收到請求後也不會直接返回域名與ip的對應關係。而是將域名的解析器的地址告訴本地DNS服務器,本地DNS服務器收到這條消息後,就向域名解析服務器發起請求,域名解析服務器將查詢結果返回給本地DNS服務器。

(注:本地DNS服務器這時候要做兩件事,一是將結果返回給客戶端,另一件事更新本地緩存,將這個記錄保存在緩存中)

2.建立TCP鏈接(三次握手)

  • 第一次:客戶端發送初始序號x和syn=1請求標誌

  • 第二次:服務器發送請求標誌syn,發送確認標誌ACK,發送自己的序號seq=y,發送客戶端的確認序號ack=x+1

  • 第三次:客戶端發送ACK確認號,發送自己的序號seq=x+1,發送對方的確認號ack=y+1
    在這裏插入圖片描述

3.發送http請求報文

  • TCP建立連接成功,瀏覽器向web服務器發送一條HTTP請求報文(請求行、請求頭部、空行、請求數據)

空行的作用是通過一個空行,告訴服務器請求頭部到此爲止。

在這裏插入圖片描述

4.接收http響應報文

  • 請求後返回HTTP響應報文(響應行、響應頭、空行、響應體)

空行的作用是通過一個空行,告訴服務器請求頭部到此爲止。

在這裏插入圖片描述

5.斷開TCP連接(四次揮手)

  • 第一次揮手:客戶端發出釋放FIN=1,自己序列號seq=u,進入FIN-WAIT-1狀態
  • 第二次揮手:服務器收到客戶端的後,發出ACK=1確認標誌和客戶端的確認號ack=u+1,自己的序列號seq=v,進入CLOSE-WAIT狀態
  • 第三次揮手:客戶端收到服務器確認結果後,進入FIN-WAIT-2狀態。此時服務器發送釋放FIN=1信號,確認標誌ACK=1,確認序號ack=u+1,自己序號seq=w,服務器進入LAST-ACK(最後確認態)
  • 第四次揮手:客戶端收到回覆後,發送確認ACK=1,ack=w+1,自己的seq=u+1,客戶端進入TIME-WAIT(時間等待)。客戶端經過2個最長報文段壽命後,客戶端CLOSE;服務器收到確認後,立刻進入CLOSE狀態
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章