1. 程式人生 > 其它 >鍵入網址到網頁顯示,期間發生了什麼?

鍵入網址到網頁顯示,期間發生了什麼?

 

孤單小弟——HTTP

真實地址查詢——DNS

指南好幫手——協議棧

可靠傳輸——TCP

遠端定位——IP

兩點傳輸——MAC

出口——網絡卡

送別者——交換機

出境大門——路由器

互相扒皮——伺服器與客戶端

一個數據包的感受

 

孤單小弟——HTTP

瀏覽器做的第一步工作是解析 URL

首先瀏覽器做的第一步工作就是要對 URL 進行解析,從而生成傳送給 Web 伺服器的請求資訊。

讓我們看看一條長長的 URL 裡的各個元素的代表什麼,見下圖:

 

 

 所以圖中的長長的 URL 實際上是請求伺服器裡的檔案資源。

要是上圖中的藍色部分 URL 元素都省略了,那應該是請求哪個檔案呢?

當沒有路徑名時,就代表訪問根目錄下事先設定的預設檔案,也就是 /index.html 或者 /default.html 這些檔案,這樣就不會發生混亂了。

生產 HTTP 請求資訊

對 URL 進行解析之後,瀏覽器確定了 Web 伺服器和檔名,接下來就是根據這些資訊來生成 HTTP 請求訊息了。

 

 

 

一個孤單 HTTP 資料包表示:“我這麼一個小小的資料包,沒親沒友,直接發到浩瀚的網路,誰會知道我呢?誰能載我一程呢?誰能保護我呢?我的目的地在哪呢?”。

充滿各種疑問的它,沒有停滯不前,依然踏上了征途!


真實地址查詢 —— DNS

通過瀏覽器解析 URL 並生成 HTTP 訊息後,需要委託作業系統將訊息傳送給 Web

 伺服器

但在傳送之前,還有一項工作需要完成,那就是查詢伺服器域名對應的 IP 地址,因為委託作業系統傳送訊息時,必須提供通訊物件的 IP 地址。

比如我們打電話的時候,必須要知道對方的電話號碼,但由於電話號碼難以記憶,所以通常我們會將對方電話號 + 姓名儲存在通訊錄裡。

所以,有一種伺服器就專門儲存了 Web 伺服器域名與 IP 的對應關係,它就是 DNS 伺服器

域名的層級關係

DNS 中的域名都是用句點來分隔的,比如 www.server.com,這裡的句點代表了不同層次之間的界限。

在域名中,越靠右的位置表示其層級越高

畢竟域名是外國人發明,所以思維和中國人相反,比如說一個城市地點的時候,外國喜歡從小到大的方式順序說起(如 XX 街道 XX 區 XX 市 XX 省),而中國則喜歡從大到小的順序(如 XX 省 XX 市 XX 區 XX 街道)。

實際上域名最後還有一個點,比如 www.server.com.,這個最後的一個點代表根域名。

也就是,. 根域是在最頂層,它的下一層就是 .com 頂級域,再下面是 server.com

所以域名的層級關係類似一個樹狀結構:

  • 根 DNS 伺服器(.)
  • 頂級域 DNS 伺服器(.com)
  • 權威 DNS 伺服器(server.com)

 

 

根域的 DNS 伺服器資訊儲存在網際網路中所有的 DNS 伺服器中。

這樣一來,任何 DNS 伺服器就都可以找到並訪問根域 DNS 伺服器了。

因此,客戶端只要能夠找到任意一臺 DNS 伺服器,就可以通過它找到根域 DNS 伺服器,然後再一路順藤摸瓜找到位於下層的某臺目標 DNS 伺服器。

域名解析的工作流程