從瀏覽器鍵入url後分析網絡請求過程

當咱們在瀏覽器中鍵入URL並回車,例如:小編在瀏覽器的地址欄中鍵入www.baidu.com後就打開了百度的首頁,那麼在這個過程當中到底發生了一些什麼呢?下面就由小編帶你們來了解一下。瀏覽器

互聯網的基本概念:

1. 網絡:

由若干計算機、集線器、交換機或路由器以及鏈接這些設備的鏈路所造成的就是網絡
緩存

2. 互聯網:

網絡與網絡之間經過路由器互相鏈接起來,造成一個更大的網絡,即互聯網
服務器

3. 因特網:

因特網就是世界上最大的互聯網cookie

網絡請求分析:

1. DNS(域名解析):

當咱們在瀏覽器中鍵入URL(例如:www.baidu.com)後,瀏覽器其實並不知道域名對應的服務器具體在哪一個網絡中,咱們首先須要知道域名對應的ip地址才能夠進行去尋找其所屬的網絡。DNS就是用來查詢某個域名對應IP地址。網絡

DNS解析域名的過程其實就是多個DNS服務器的接力。客戶端查詢本地緩存,查看是否已有該域名對應的IP地址,若是有則直接從緩存中取出該域名對應的IP地址進行訪問。若是緩存中沒有,則須要向本地DNS服務器發出請求進行域名解析工做,若是在本地DNS服務器中也沒法查詢到該域名所對應的IP,那麼,這個請求將會被髮送到根DNS服務器進行轉發處理,以此類推,直到最後找到該域名所對應的IP地址。

session

2. 創建TCP鏈接

當咱們獲取到目標服務器的IP地址後,咱們的瀏覽器會先與目標服務器進行TCP鏈接(三次握手)。這條鏈接就是客戶端與服務端的一個通道,以後的數據傳輸都在這條通道內。tcp

3. HTTP請求/響應

瀏覽器將請求參數根據五層模型將請求數據一層一層向下傳遞,每通過一層添加頭部,當數據傳遞到服務端時,服務端每通過一層刪除頭部,最終將數據交付給服務端的應用。當服務端第一次向客戶端發送響應時,該服務器會返回一個sessionId存入該瀏覽器的cookie中,以便區分不一樣會話。
blog

4. 斷開TCP鏈接

當客戶端與服務端的通訊結束的時候咱們須要斷開剛纔咱們所創建的鏈接(四次揮手)。在HTTP/1.1以前默認的鏈接是短鏈接,即當服務端給客戶端響應後就斷開鏈接,那麼當客戶端與服務端的請求次數較多時,這種方式就須要頻繁的建立/斷開鏈接,這樣的操做會使得服務器的資源很快被耗盡。因此在HTTP/1.1開始默認的鏈接爲長鏈接,即服務端給客戶端響應後不立刻斷開鏈接,而是這條鏈路上300s左右沒有數據傳輸,則關閉此鏈接。dns

相關文章
相關標籤/搜索