1. 程式人生 > >從瀏覽器地址欄輸入URL到瀏覽器呈現數據全過程解析

從瀏覽器地址欄輸入URL到瀏覽器呈現數據全過程解析

內部 htm 粘貼 關閉 解析 可用 tro 理解 情況

一、輸入設備(或粘貼)輸入 URL,按下 Enter鍵 或其他按鈕開始請求。

二、瀏覽器開始解析 URL

關於 URL 到相關知識點:什麽是URI,URL以及URN,你真的理解了嗎。

1、URL 是否合法

2、URL 中的字符轉換

3、HSTS列表 協議升級。相關文章 HSTS詳解。在現代瀏覽器中,這一步有可能導致請求中止。

三、檢查本地緩存,根據緩存情況決定下一步的動作

1、 強緩存(Cache-Control Expires) 直接從本地緩存讀取資源(若是這步,便沒有下面的步驟)

2、弱緩存(Etag、If-None-Match 和 Last-Modified、If-Modified-Since) 需要與服務器通信進行一次確認緩存是否可用

3、無緩存 與服務器通信請求數據

關於強弱緩存的文章: HTTP強緩存和協商緩存

四、瀏覽器開始進行 DNS 解析

解析的過程依次為:瀏覽器緩存、本機緩存、hosts文件、路由器緩存、ISP DNS緩存、DNS遞歸查詢。

五、與目標IP的服務器進行TCP鏈接(三次握手)

參考文章: TCP三次握手詳解及釋放連接過程

六、發送 HTTP或HTTPS 請求

參考文章:Http和Https的區別

七、服務器對請求進行響應

1、304響應 對應對是弱緩存響應

2、200響應 對應對是無緩存響應

在服務器進行響應之前,內部還有其他的內容。

比如代理服務器,數據庫查詢等等。

八、瀏覽器接收響應,並視情況關閉TCP連接

九、根據響應對內容,瀏覽器進行不同對處理

下面僅僅對 html 網頁文檔進行討論。

十、下文待續。

參考文章: https://www.jianshu.com/p/558455228c43

從瀏覽器地址欄輸入URL到瀏覽器呈現數據全過程解析