天天看點

浏覽器輸入URL到點選頁面的過程

大緻流程

  1. URL解析
  2. DNS查詢
  3. 建立TCP連接配接
  4. 浏覽器發送HTTP請求
  5. 伺服器端響應請求
  6. 渲染頁面

1 URL解析

請求發起後,浏覽器首先會解析URL得到協定,域名,端口,資源路徑等資訊

2 浏覽器查找域名對應的ip位址

  1. 浏覽器先檢查自身的緩存中是否存在該域名和ip的映射關系,存在則直接傳回ip位址;
  2. 如果沒有,則檢查是否存在本地主機的Hosts檔案裡,沒有則向本地DNS伺服器發送請求,本地DNS伺服器一般都是你的網絡接入伺服器商提供,如中國移動
  3. 查詢域名對應ip的DNS請求到達本地DNS伺服器之後,本地DNS伺服器會首先查詢它的緩存記錄,如果緩存中有此條記錄,就可以直接傳回結果,此過程是遞歸的方式進行查詢。如果本地DNS伺服器緩存中沒有該記錄,則本地DNS伺服器還要向DNS根伺服器進行查詢
  4. 根DNS伺服器沒有記錄具體的域名和Ip位址的對應關系,而是告訴本地DNS伺服器,你可以到域伺服器上去繼續查詢,并給出域伺服器的位址。這是個疊代的過程;
  5. 本地DNS伺服器繼續向域伺服器送出請求,域伺服器一般也不會直接傳回域名和IP的對應關系,而是告訴本地DNS伺服器,你的域名解析伺服器的位址;
  6. 最後,本地DNS伺服器向域名的解析伺服器送出請求,這時就能收到一個域名和IP位址的對應關系,本地DNS伺服器把IP位址傳回給使用者主機,并把這個對應關系儲存在緩存中。

3TCP連接配接

浏覽器拿到域名對應ip位址後,會以随機端口向WEB伺服器程式80端口發起TCP的連接配接請求,發起三次握手,建立連接配接。

浏覽器輸入URL到點選頁面的過程

三次握手建立連接配接另外總結

4浏覽器向WEB伺服器發起HTTP請求

建立TCP連接配接之後,發起HTTP請求,請求一般分為三部分:

請求行(方法 url 協定版本 CRLF)

請求頭(主機名,cookie等)

實體主體部分

5伺服器端處理

伺服器收到請求後,根據路徑參數映射到特定的請求處理器進行處理,并将處理結果及相應的視圖傳回給浏覽器;

6渲染頁面

浏覽器根據請求的得到的資源和資料渲染頁面,最終向使用者呈現一個完整的頁面。

繼續閱讀