在瀏覽器中輸入網址到頁面顯示出來,這中間到底發生了什麼?
08-01
在瀏覽器中輸入網址到頁面顯示出來,這中間到底發生了什麼?
推薦閱讀:
來自專欄輪子工廠20 人贊了文章
一、問題
在瀏覽器中輸入網址,到頁面顯示出來,中間發生了什麼?
二、解答
1、查詢DNS,獲取域名對應的IP。
(1)檢查本地hosts文件是否有這個網址的映射,如果有,就調用這個IP地址映射,解析完成。
(2)如果沒有,則查找本地DNS解析器緩存是否有這個網址的映射,如果有,返回映射,解析完成。
(3)如果沒有,則查找填寫或分配的首選DNS伺服器,稱為本地DNS伺服器。伺服器接收到查詢時:
- 如果要查詢的域名包含在本地配置區域資源中,返回解析結果,查詢結束,此解析具有權威性。
- 如果要查詢的域名不由本地DNS伺服器區域解析,但伺服器緩存了此網址的映射關係,返回解析結果,查詢結束,此解析不具有權威性。
(4)如果本地DNS伺服器也失效:
- 如果未採用轉發模式(迭代),本地DNS就把請求發至13台根DNS,根DNS伺服器收到請求後,會判斷這個域名(如.com)是誰來授權管理,並返回一個負責該頂級域名伺服器的IP,本地DNS伺服器收到頂級域名伺服器IP信息後,繼續向該頂級域名伺服器IP發送請求,該伺服器如果無法解析,則會找到負責這個域名的下一級DNS伺服器(如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請求,及時更新頁面。
--------------------------
我的其它幾個高贊回答也很值得看,全是滿滿的乾貨:
大神有哪些願意分享的計算機類資源?
計算機專業必讀哪些經典書籍?
譚慶波:有哪些劇情反轉的有趣故事?
譚慶波:零基礎怎麼學Java?
——————————————————
微信搜索公眾號【輪子工廠】,後台回復關鍵字:
1.回復【圖書】:獲取15本新手自學編程,零基礎入門經典學習教材;2.回復【我要造輪子】:獲取100多本我根據知乎上面關於計算機問題的高贊回答裡面的介紹整理出來的書籍;3.回復【內推】:可幫你內推到大廠工作。推薦閱讀:
※如何規範和篩選網路語言
※網路詞典|龍傲天:今天你傲天了嗎?
※論網路流行語言
※暗語、「黑話」還是新時代的大眾話語?——關於網路語言的一個考察(下)
※2016年10大網路流行語出爐,用英語這麼說才夠味兒!