1. 程式人生 > 其它 >從URL輸入到頁面展現到底發生什麼?DNS 解析&TCP 連線

從URL輸入到頁面展現到底發生什麼?DNS 解析&TCP 連線

  • DNS 解析:將域名解析成 IP 地址
  • TCP 連線:TCP 三次握手
  • 傳送 HTTP 請求
  • 伺服器處理請求並返回 HTTP 報文
  • 瀏覽器解析渲染頁面
  • 斷開連線:TCP 四次揮手

一、什麼是URL?

URL(Uniform Resource Locator),統一資源定位符,用於定位網際網路上資源,俗稱網址。

scheme: // host.domain:port / path / filename ? abc = 123 # 456789
scheme       - 定義因特網服務的型別。常見的協議有 http、https、ftp、file,
               其中最常見的型別是 http,而 https 則是進行加密的網路傳輸。
host         - 定義域主機(http 的預設主機是 www)
domain       - 定義因特網域名,比如 baidu.com
port         - 定義主機上的埠號(http 的預設埠號是 80)
path         - 定義伺服器上的路徑(如果省略,則文件必須位於網站的根目錄中)。
filename     - 定義文件/資源的名稱
query        - 即查詢引數
fragment     - 即 # 後的hash值,一般用來定位到某個位置

二、DNS域名解析

在瀏覽器輸入網址後,首先要經過域名解析,因為瀏覽器並不能直接通過域名找到對應的伺服器,而是要通過 IP 地址。

DNS 是:
一個由分層的 DNS 伺服器實現的分散式資料庫
一個使得主機能夠查詢分散式資料庫的應用層協議
  • 什麼是分散式?

這個世界上沒有一臺 DNS 伺服器擁有因特網上所有主機的對映,每臺 DNS 只負責部分對映。

  • 什麼是層次?

DNS 伺服器有 3 種類型:根 DNS 伺服器、頂級域(Top-Level Domain, TLD)DNS 伺服器和權威 DNS 伺服器。它們的層次結構如下圖所示:

  1. IP 地址
IP 地址是指網際網路協議地址,是 IP Address 的縮寫。IP 地址是 IP 協議提供的一種統一的地址格式,
它為網際網路上的每一個網路和每一臺主機分配一個邏輯地址,以此來遮蔽實體地址的差異。
  1. 什麼是域名解析
DNS 協議提供通過域名查詢 IP 地址,或逆向從 IP 地址反查域名的服務。
DNS 是一個網路伺服器,我們的域名解析簡單來說就是在 DNS 上記錄一條資訊記錄。
  1. 瀏覽器如何通過域名去查詢 URL 對應的 IP 呢?
DNS域名解析分為遞迴查詢和迭代查詢兩種方式,現一般為迭代查詢。