一個頁面從輸入 URL 到頁面加載顯示完成,這個過程中都發生瞭什麼?

DNS解析:

DNS解析的過程就是根據域名查找 IP 地址。

TCP連接:

瀏覽器根據 IP 地址向服務器發起 TCP 連接,與瀏覽器建立 TCP 三次握手:

1.客戶端向服務器發送一個建立連接的請求(客戶端:我要連接你瞭,可以嗎);2.服務器接到請求後發送同意連接的信號(服務器:嗯,我準備好瞭,連接我吧);3.客戶端接到同意連接的信號後,再次向服務器發送瞭確認信號(客戶端:那我連接你咯。),自此,客戶端與服務器兩者建立瞭連接。

當服務器與客戶端建立連接之後,下面客戶端便與服務器進行通信(客戶端向服務器請求數據,服務器返回相應的數據):

發送HTTP請求(HTTP請求報文是由三部分組成: 請求行, 請求報頭和請求正文。):1.瀏覽器根據 URL 內容生成 HTTP 請求,請求中包含請求文件的位置、請求文件的方式等等;

服務器處理請求並返回HTTP報文(HTTP響應報文也是由三部分組成: 狀態碼, 響應報頭和響應報文。):2.服務器接到請求後,會根據 HTTP 請求中的內容來決定如何獲取相應的 HTML 文件;3.服務器將得到的 HTML 文件發送給瀏覽器;4.在瀏覽器還沒有完全接收 HTML 文件時便開始渲染、顯示網頁;5.在執行 HTML 中代碼時,根據需要,瀏覽器會繼續請求圖片、CSS、JavsScript等文件,過程同請求 HTML 。斷開連接–四次揮手

  1. 客戶端向服務器發送一個斷開連接的請求(不早瞭,我該走瞭);
  2. 服務器接到請求後發送確認收到請求的信號(知道瞭);
  3. 服務器向客戶端發送斷開通知(我也該走瞭);
  4. 客戶端接到斷開通知後斷開連接並反饋一個確認信號(嗯,好的),服務器收到確認信號後斷開連接;

補充說明

  • 為什麼服務器在接到斷開請求時不立即同意斷開:當服務器收到斷開連接的請求時,可能仍然有數據未發送完畢,所以服務器先發送確認信號,等所有數據發送完畢後再同意斷開。
赞(0)