在瀏覽器上輸入URL到顯示發生了什麼

2021-10-12 19:00:02 字數 2163 閱讀 5218

合成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請求:瀏覽器首先會向伺服器傳送請求行,它包含了請求方法請求 urihttp 協議的版本;另外還會傳送請求頭,告訴伺服器一些瀏覽器的相關資訊,比如瀏覽器核心,請求網域名稱、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則直接返回,沒...