_claus
簡書作者
2017-12-15 23:15打開App
初次嘗試寫第一篇博客,居然就得去了解一個這么高級的問題,著實興奮!
輸入baidu.com到頁面展現到底發生了一個什么程序呢?
首先我們需要知道瀏覽器并不知道baidu.com是什么東西。實際上baidu.com是一個域名,需要域名決議成一個IP地址,通過這個IP地址來為用戶回傳他需要的結果。
一個完整的網站它是由協議(例如http,https,file,ftp),域名(如baidu.com),埠號(如:8080),檔案路徑名,檔案名組成的。只不過大多數情況下,這些都會被省略不寫。
發生程序如下。
1)用戶輸入—本機獲取URL
2)決議URL資訊,在本機hosts檔案中查找與之對應的IP地址(域名決議)
什么是域名?為什么不直接使用IP?
1.域名就是把IP語意化,是用戶方便記住的一個名稱。通過域名可以更方便的找到IP地址。
2.IP:網路之間互連的協議,是Internet Protocol的外語縮寫。它差不多長成這個樣子 210.70.140.0 。
所以IP是一個鬼都不愿意去記的一個東西。
如果本地hosts檔案中有與之對應的IP地址,則直接給用戶回傳IP地址(如果沒有則進行下一步)
3)發送dns請求到本地服務器,如果本地服務器有IP地址則直接回傳結果(如果沒有則下一步)
4)到根服務器,根服務器會告訴本地服務器到域服務器中查找。
4)本地dns服務器向頂級域.com發起請求,頂級域受到請求,告訴本地dns服務器域名的決議服務器的地址。并不是告訴本地服務器域名和IP地址的對應關系。
5)本地dns服務器向域名的決議服務器發出請求,這時就能收到一個域名和IP地址對應關系,本地DNS服務器不僅要把IP地址回傳給用戶電腦,還要把這個對應關系保存在快取中,以備下次別的用戶查詢時,可以直接回傳結果,加快網路訪問。
6)IP地址回傳給本地服務器處理請求,服務器一般都會安裝一個用于接收處理請求的應用—web server常見的web server產品有apache、nginx等并且決定采用哪種方式來處理這個請求,讀取請求,然后形成html回應。
7)客戶端瀏覽器開始處理,決議渲染頁面!
8)客戶端頁面展現,將決議渲染后進行可視化!
uj5u.com熱心網友回復:
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/84233.html
標籤:網絡通信
下一篇:求大神指點!!!我快崩潰啦
