在瀏覽器中輸入網址到頁面顯示出來,這中間到底發生了什麼?
一、問題
在瀏覽器中輸入網址,到頁面顯示出來,中間發生了什麼?
二、解答
1、查詢DNS,獲取域名對應的IP。
(1)檢查本地hosts檔案是否有這個網址的對映,如果有,就呼叫這個IP地址對映,解析完成。
(2)如果沒有,則查詢本地DNS解析器快取是否有這個網址的對映,如果有,返回對映,解析完成。
(3)如果沒有,則查詢填寫或分配的首選DNS伺服器,稱為本地DNS伺服器。伺服器接收到查詢時:
-
如果要查詢的域名包含在本地配置區域資源中,返回解析結果,查詢結束,此解析具有權威性。
-
如果要查詢的域名不由本地DNS伺服器區域解析,但伺服器快取了此網址的對映關係,返回解析結果,查詢結束,此解析不具有權威性。
(4)如果本地DNS伺服器也失效:
- 如果未採用轉發模式(迭代),本地DNS就把請求發至13臺根DNS,根DNS伺服器收到請求後,會判斷這個域名(如.com)是誰來授權管理,並返回一個負責該頂級域名伺服器的IP,本地DNS伺服器收到頂級域名伺服器IP資訊後,繼續向該頂級域名伺服器IP傳送請求,該伺服器如果無法解析,則會找到負責這個域名的下一級DNS伺服器(如 ofollow,noindex">http://baidu.com )的IP給本地DNS伺服器,迴圈往復直至查詢到對映,將解析結果返回本地DNS伺服器,再由本地DNS伺服器返回解析結果,查詢完成。
- 如果採用轉發模式(遞迴),則此DNS伺服器就會把請求轉發至上一級DNS伺服器,如果上一級DNS伺服器不能解析,則繼續向上請求。最終將解析結果依次返回本地DNS伺服器,本地DNS伺服器再返回給客戶機,查詢完成。
2、客戶機發送HTTP請求報文:
(1)應用層:客戶端傳送HTTP請求報文
(2)傳輸層:切分長資料,並確保可靠性。
(3)網路層:進行路由
(4)資料鏈路層:傳輸資料
(5)物理層:物理傳輸bit
3、伺服器端經過物理層→資料鏈路層→網路層→傳輸層→應用層,解析請求報文,傳送HTTP響應報文。
4、客戶端解析HTTP響應報文
5、瀏覽器開始顯示HTML
6、瀏覽器重新發送請求獲取圖片、CSS、JS的資料。
7、如果有AJAX,瀏覽器傳送AJAX請求,及時更新頁面。
--------------------------
微信搜尋公眾號【輪子工廠】,後臺回覆關鍵字:
1.回覆【圖書】:獲取15本新手自學程式設計,零基礎入門經典學習教材;
2.回覆【我要造輪子】:獲取100多本我根據知乎上面關於計算機問題的高贊回答裡面的介紹整理出來的書籍;
3.回覆【內推】:可幫你內推到大廠工作。

image.png