輸入URL到最后瀏覽器呈現(xiàn)頁面內容,這個過程中發(fā)生了什么

在你的瀏覽器中輸入www.baidu.com以后,會在你的瀏覽器呈現(xiàn)百度首頁,這期間發(fā)生了什么?

首先我們需要知道TCP/IP的網(wǎng)絡模型,這里我就以四層模型為例子。

image.png

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

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

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

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

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

第六步:服務器接收數(shù)據(jù)后,從下到上層層將數(shù)據(jù)解包,直到應用層。

第七步: 服務器接收到客戶端發(fā)送的HTTP請求后,查找客戶端請求的資源,將數(shù)據(jù)裝載入響應報文并返回,響應報文中包括一個重要的信息——狀態(tài)碼,如200,404,500。

DNS域名解析

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

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

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

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

image.png

操作系統(tǒng)會將域名發(fā)送到這里的設置的LDNS(本地區(qū)域名服務器),如果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對應關系緩存到本地,整個域名解析過程結束。

參考博客:https://blog.csdn.net/qq_37169817/article/details/78663598?

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容