這是乙個老生常談的問題,筆者今天對這個問題進行乙個總結。整個過程可分為4個步驟,分別如下所示:
1. 網域名稱解析
當我們在瀏覽器的輸入框中輸入**的時候,瀏覽器其實已經在智慧型地匹配可能的url了,它會從歷史或者書籤等地方查詢可能對應的url,給出一些智慧型提示,方便智慧型補全,部分瀏覽器甚至會直接從快取中把網頁顯示出來。
請求一旦發起,瀏覽器首先要做的事情就是解析這個網域名稱,即找到對應的 ip。查詢流程如下圖所示:
2. 建立 tcp 連線
拿到網域名稱對應的 ip 位址之後,主機瀏覽器與伺服器建立 tcp 連線,即 tcp 的三次握手(瀏覽器所在的客戶機向伺服器發出連線請求報文;伺服器接收報文後,同意建立連線,向客戶機發出確認報文;客戶機接收到確認報文後,再次向伺服器發出報文,確認已接收到確認報文),此時客戶機與伺服器之間的 tcp 連線建立完成,開始通訊。
3. 瀏覽器向 web 伺服器傳送乙個 http 請求
瀏覽器發出取檔案命令:get,伺服器給瀏覽器乙個永久重定向響應,瀏覽器跟蹤重定向位址。伺服器根據請求返回內容給瀏覽器,瀏覽器釋放tcp連線,即四次揮手(瀏覽器所在主機向伺服器發出連線釋放報文,然後停止傳送資料;伺服器接收到釋放報文後發出確認報文,然後將伺服器上未傳送完的資料傳送完;伺服器資料傳輸完畢後,向客戶機傳送連線釋放報文;客戶機接收到報文後,發出確認,然後等待一段時間後,釋放tcp連線)。
關於 tcp 的三次握手與四次揮手,請移步博主的另外一篇博文:tcp 與 udp 對比,以及 tcp 的三次握手與四次揮手。
4. 返回頁面
主要涉及到的協議有:tcp/ip, http, arp
參考資料:
[1] 老生常談-從輸入url到頁面展示到底發生了什麼
[2] 從輸入**到返回頁面經過了這些過程
[3] 輸入url到頁面返回的全過程
從URL輸入到頁面展現到底發生什麼?
開啟瀏覽器從輸入 到網頁呈現在大家面前,背後到底發生了什麼?經歷怎麼樣的乙個過程?先給大家來張總體流程圖,具體步驟請看下文分解!本文首發位址為github部落格 總體來說分為以下幾個過程 url uniform resource locator 統一資源定位符,用於定位網際網路上資源,俗稱 比如,遵...
從URL輸入到頁面展現到底發生什麼?
三 tcp 三次握手 四 傳送 http 請求 五 伺服器處理請求並返回 http 報文 六 瀏覽器解析渲染頁面 七 斷開連線 參考文章 總體來說分為以下幾個過程 url uniform resource locator 統一資源定位符,用於定位網際網路上資源,俗稱 比如 遵守以下的語法規則 sch...
從URL輸入到頁面展現到底發生什麼?
目錄三 tcp 三次握手 四 傳送 http 請求 五 伺服器處理請求並返回 http 報文 六 瀏覽器解析渲染頁面 七 斷開連線 開啟瀏覽器從輸入 到網頁呈現在大家面前,背後到底發生了什麼?經歷怎麼樣的乙個過程?先給大家來張總體流程圖,具體步驟請看下文分解!總體來說分為以下幾個過程 url uni...