我們可以把這個過程分為兩個部分來分析
1.使用者輸入url 到 瀏覽器拿到服務端返回的資料
2.瀏覽器拿到資料 到 瀏覽器成功渲染拿到的資料
第一部分:
1.使用者輸入url位址
在使用者輸入url的時候,瀏覽器會從歷史記錄、書籤等地方找輸入的字串可能對應的url然後給出智慧型提示。
2.dns解析
使用者點選回車發起請求,瀏覽器第一步要做的就是解析這個網域名稱,
一般來說瀏覽器會首先檢視本地硬碟的hosts檔案,如果有的話就直接使用hosts中對應的ip
如果在本地hosts檔案中沒有找到對應的ip位址,瀏覽器會傳送乙個dns請求到本地dns伺服器(一般由網路接入服務商提供,電信、移動)
本地dns伺服器接到請求後,本地dns伺服器會首先查詢他的快取記錄,如果快取中有就直接返回結果(遞迴方式進行查詢),如果沒有本地dns伺服器向dns根伺服器進行查詢
根dns伺服器本身沒有記錄網域名稱和ip的對應關係,而是告訴本地dns伺服器到域伺服器上去查詢,並給出域伺服器位址
本地dns伺服器繼續向域伺服器(.com)傳送請求,而域伺服器會告訴本地dns伺服器,網域名稱解析伺服器的位址
最後本地dns伺服器向網域名稱解析伺服器傳送請求,得到網域名稱和ip的對應關係。本地dns伺服器會快取這個位址。
3.瀏覽器向web伺服器傳送乙個http請求
瀏覽器與遠端web伺服器通過tcp三次握手來建立乙個tap/ip連線
第一次握手:建立連線,客戶端a傳送syn=1、隨機產生sep=client_isn的資料報到伺服器b。等待伺服器確認
第二次握手:伺服器b收到請求後確認聯機(可以接受資料),會發起第二次請求,ack=(a的sep+1)、syn=1,隨機產生sep=client_isn的資料報到a。
第三次握手:a收到後檢查ack是否正確。若正確,a會再傳送確認包ack=(b的sep+1)、ack=1,伺服器b收到後確認seq與ack的值,若正確建立連線。
瀏覽器通過tcp連線向web伺服器傳送乙個http請求,請求資訊包含請求方法 url 協議/版本、請求頭、請求正文。
4、伺服器的永久重定向相應。比如 「 重定向到 「瀏覽器跟蹤重定向位址。
5、伺服器處理請求,並返回乙個http響應(狀態行、響應頭、響應正文)
第二部分:
瀏覽器解析html檔案時會『自上而下』載入,並在載入過程中進行解析渲染,在解析過程中如果遇到請求外部資源時,請求過程是非同步的不影響html文件載入。
瀏覽器解析過程:解析html以構建dom樹=>解析css檔案構建render樹=>布局render樹=>繪製render樹
瀏覽器工作流程 從輸入 URL 到頁面展示
學習筆記 使用者輸入 使用者在位址列按下回車,檢查輸入 關鍵字 or 符合 url 規則 組裝完整 url 回車前,當前頁面執行 onbeforeunload 事件 瀏覽器進入載入狀態。url 請求 瀏覽器程序通過 ipc 把 url 請求傳送至網路程序 查詢資源快取 有效期內 dns 解析 查詢 ...
從輸入URL到頁面展示
這個時候有兩種情況,第一種是子網域名稱伺服器返回了這個url對應的ip位址,第二種情況是經過了cdn排程,如果目標 使用了cdn服務,則需要在cdn服務商的平台設定相應的cname記錄,這個記錄是cdn服務廠商的乙個dns伺服器的網域名稱,子網域名稱伺服器會返回這個cname記錄,本地dns伺服器得...
從網頁輸入url到頁面展示,瀏覽器一頓操作猛如虎
我只是隨便輸進去幾個字,噼里啪啦的頁面就雨點般的撲面而來。瀏覽器中間做了哪些操作,才能讓獲知訊息變得如此便捷?且看下面分解 1 輸入 2 瀏覽器解析 url 解析出主機名 3.瀏覽器將主機名轉換成伺服器 ip 位址 瀏覽器先查詢本地 dns 快取列表 沒有的話 再向瀏覽器預設的 dns 伺服器傳送查...