1. 程式人生 > >從輸入一個url到瀏覽器頁面展示都經歷了哪些過程

從輸入一個url到瀏覽器頁面展示都經歷了哪些過程

面試的時候有些面試官會問這個問題,可按如下流程作答:

1、首先,在瀏覽器位址列中輸入url

2、瀏覽器先檢視瀏覽器快取-系統快取-路由器快取,如果快取中有,會直接在螢幕中顯示頁面內容。若沒有,則跳到第三步操作。

3、在傳送http請求前,需要域名解析(DNS解析),解析獲取相應的IP地址。

4、瀏覽器向伺服器發起tcp連線,與瀏覽器建立tcp三次握手

5、握手成功後,瀏覽器向伺服器傳送http請求,請求資料包

6、伺服器處理收到的請求,將資料返回至瀏覽器

7、瀏覽器收到HTTP響應

8、讀取頁面內容,瀏覽器渲染,解析html原始碼

9、生成Dom樹、解析css樣式、js互動

10、客戶端和伺服器互動

11、ajax查詢

其中,步驟2的具體過程是:

  • 瀏覽器快取:瀏覽器會記錄DNS一段時間,因此,只是第一個地方解析DNS請求;
  • 作業系統快取:如果在瀏覽器快取中不包含這個記錄,則會使系統呼叫作業系統,獲取作業系統的記錄(儲存最近的DNS查詢快取);
  • 路由器快取:如果上述兩個步驟均不能成功獲取DNS記錄,繼續搜尋路由器快取;
  • ISP快取:若上述均失敗,繼續向ISP搜尋。