瀏覽器輸入網址後發生了什麼?

在你的瀏覽器中輸入www.baidu.com以後,會在你的瀏覽器呈現百度首頁,這期間發生了什麼?

首先我們需要知道TCP/IP的網絡模型,這裏我就以四層模型爲例子。

這裏寫圖片描述

第一步:在瀏覽器中輸入www.baidu.com後,應用層會使用DNS解析域名,如果本地存有對應的IP,則使用;如果沒有,則會向上級DNS服務器請求幫助,直至獲得IP。域名解析詳細過程會在下文講到。

第二步:應用層將請求的信息裝載入HTTP請求報文,信息包含了請求的方法(GET / POST)、目標url、遵循的協議(http / https / ftp…)等,然後應用層將發起HTTP請求。

第三步:傳輸層接收到應用層傳遞下來的數據,並分割成以報文段爲單位的數據包進行管理,併爲它們編號,方便服務器接收時能準確地還原報文信息。通過三次握手和目標端口建立安全通信。

第四步:網絡層接收傳輸層傳遞的數據,根據IP通過ARP協議獲得目標計算機物理地址—MAC。當通信的雙方不在同一個局域網時,需要多次中轉才能到達最終的目標,在中轉的過程中需要通過下一個中轉站的MAC地址來搜索下一個中轉目標。

第五步:找到目標MAC地址以後,就將數據發送到數據鏈路層,這時開始真正的傳輸請求信息,傳輸完成以後請求結束。

第六步:服務器接收數據後,從下到上層層將數據解包,直到應用層。

第七步: 服務器接收到客戶端發送的HTTP請求後,查找客戶端請求的資源,將數據裝載入響應報文並返回,響應報文中包括一個重要的信息——狀態碼,如200,404,500。

DNS域名解析

域名解析就是將域名地址解析爲IP地址,從瀏覽器輸入域名到解析爲IP地址,其中具體的過程可以分爲如下一些步驟!

1.瀏覽器檢查緩存中是否有此域名對應解析過的IP地址,如果有,直接返回結果,解析過程接結束。

2.瀏覽器沒有緩存對應的IP,此時瀏覽器會查找操作系統中是否有此域名對應的DNS解析結果,如果有,直接返回結果,解析過程接結束。在windows中可以通過C:\Windows\System32\drivers\etc\hosts來設置域名解析過程,linux下是/ect/named.conf。

3.如果在本機中無法完成域名解析過程,就會請求DNS服務器來解析了。在網絡設置中我們會配有DNS服務器地址:

這裏寫圖片描述

操作系統會將域名發送到這裏的設置的LDNS(本地區域名服務器),如果LDNS解析成功,則返回結果,解析過程結束。

4.LDNS不能成功解析域名,則會請求RootServer域名服務器請求解析。RootServer將所要解析的域名的主服務器(gTLD)地址返回給LDNS,就好像路標,告訴LDNS應該去哪裏尋找結果。

5.LDNS請求gTLD,接收請求的gTLD查找並返回此域名對應的NameServer,NameServer就是此域名註冊的域名服務器。gTLD也是一個路牌,告訴你該去此域名註冊時的域名服務器那裏去尋找結果。

6.NameServer接收請求,並將域名和IP的映射關係表連同一個TTL值返回給LDNS。

7.LDNS將解析結果返回給用戶,並且將域名和IP對應關係緩存。

8.本地用戶接收到解析結果,並將域名和IP對應關係緩存到本地,整個域名解析過程結束。

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