合成url
:使用者輸入url
,瀏覽器會根據使用者輸入的資訊判斷是搜尋還是**,如果是搜尋內容,就將搜尋內容 + 預設搜尋引擎合成新的url
;如果使用者輸入的內容符合url
規則,瀏覽器就會根據url
協議,在這段內容上加上協議合成合法的url
;
載入:使用者輸入完內容,按下回車鍵,瀏覽器導航欄顯示loading
狀態,但是頁面還是呈現前乙個頁面,這是因為新頁面的響應資料還沒有獲得
在發起url請求階段,包含許多涉及網路知識的方面,所以將這部分再進行乙個拆分。
構建請求:瀏覽器程序首先會構建請求行資訊,然後通過通訊程序
將url
請求傳送給網路程序
;
查詢快取:網路程序獲取到url
,先去本地快取中查詢是否有快取資源,如果有則攔截請求,直接將快取資源返回給瀏覽器程序,否則,進入網路請求階段;
dns
解析:如果對www.baidu.com進行解析的話,首先會訪問瀏覽器的快取,然後訪問系統快取(host
),然後訪問路由器快取,一直溯源到頂級網域名稱伺服器.com,在這一串的過程中,如果成功查詢到,就會將網域名稱對應的ip 位址
和埠號
,如果沒有指定埠號,http
預設80
埠,https
預設443
。如果是https
請求,還需要建立tls
連線;
建立tcp
連線:tcp
三次握手與伺服器建立連線,與伺服器成功的連線以後就要進行資料的傳輸;
傳送http
請求:瀏覽器首先會向伺服器傳送請求行,它包含了請求方法
、請求 uri
和http 協議
的版本;另外還會傳送請求頭
,告訴伺服器一些瀏覽器的相關資訊,比如瀏覽器核心,請求網域名稱、cookie 等;如果需要傳遞引數,則還需要傳送請求體;
伺服器處理請求:伺服器首先返回響應行,包括協議版本和狀態碼,比如狀態碼 200 表示繼續處理該請求;(如果是 301,則表示重定向,將會在響應頭的 locaiton 欄位中加上重定向的位址資訊,接下來瀏覽器獲取這個位址,將會重新導航。)伺服器也會向瀏覽器傳送響應頭,包含了一些資訊,比如伺服器生成返回資料的時間、返回的資料型別(json、html、流**等型別),以及伺服器要在客戶端儲存的 cookie 等;
斷開 tcp 連線:資料傳輸完成,正常情況下tcp
將四次揮手斷開連線。但是如果瀏覽器或者伺服器在http頭部加上 connection:keep-alive
,tcp 就會一直保持連線。保持 tcp 連線可以省下下次需要建立連線的時間,提高資源的載入速度;
正常情況下每個瀏覽器的 tab 會對應乙個渲染程序,但如果從乙個頁面開啟了另乙個新頁面,而新頁面和當前頁面屬於同一站點的話,那麼新頁面會復用父頁面的渲染程序,否則就會建立乙個新的渲染程序
渲染程序準備好後,瀏覽器會發出 「提交文件」 的訊息給渲染程序,渲染程序收到訊息後,會和網路程序建立傳輸資料的 「管道」,文件資料傳輸完成後,渲染程序會返回「確認提交
」的訊息給瀏覽器程序;
瀏覽器收到 「確認提交
」 的訊息後,會更新瀏覽器的頁面狀態,包括了安全狀態、位址列的url
、前進後退的歷史狀態,並更新 web 頁面,此時的 web 頁面是空白頁;
收到文件以後,瀏覽器的渲染過程為:解析html生成dom
樹 →解析css,生成css規則樹
→將dom
樹和css規則樹
相結合生成渲染樹
→從根節點開始計算節點的精確座標,將渲染樹生成布局渲染樹
→使用ui渲染引擎
將布局渲染樹繪製到頁面上。
在瀏覽器輸入url後發生了什麼
問題 1 網域名稱解析 2 發起tcp的3次握手 3 建立tcp連線後發起的http請求 4 伺服器端響應http請求,瀏覽器得到html 5 瀏覽器解析html 並請求html 中的資源 6 瀏覽器對頁面進行渲染呈現給使用者 1.網域名稱解析 dns解析的詳細過程 1 解析網域名稱時,瀏覽器會首先...
瀏覽器輸入URL發生了什麼
這是一道經典的面試題,這道面試題不光前端面試會問到,後端面試也會被問到。這道題涉及很多的知識點,面試官會通過這道題了解你對哪一方面的知識比較擅長,然後繼續追問看看你的掌握程度。當然我寫的這些也只是我的一些簡單的理解,從前端的角度出發,我覺得首先回答必須包括幾個基本的點,然後在根據你的理解深入回答。1...
瀏覽器輸入url會發生什麼
第一步 瀏覽器輸入網域名稱 例如輸入 www.csdn.ne 瀏覽器會把輸入的網域名稱解析成對應的ip,其過程如下 3.查詢路由器快取 如果1,2步都查詢無果,則需要借助網路,路由器一般都有自己的dns快取,將前面的請求發給路由器,查詢isp 服務商快取 dns的伺服器,如果查詢到ip則直接返回,沒...