前端面試之:從輸入URL到頁面加載完成是一個怎樣的過程


  寫下這篇文章留個紀念,各位前端的小伙伴也可以做個參考,也期待你們的補充。

  問:從輸入URL到頁面加載完成是一個怎樣的過程?

  答:服務器啟動好監聽服務,准備迎接來自客戶機的請求,

1、輸入地址

  當我們開始在瀏覽器中輸入網址的時候,瀏覽器其實已經開始在智能的匹配可能得到的URL了,他會從歷史記錄、書簽等地方,找到已經輸入的字符串可能對應的URL,然后給出智能的提示,對於Google chrome這種聰明的瀏覽器,他甚至會直接從緩存中把網頁展示出來,也就是說在你還沒有戳下enter鍵的時候,頁面就已經展示在你面前了,詳細情況先不解釋。

2、瀏覽器查找域名的IP地址

  導航的第一步是找出訪問域的IP地址,DNS查找過程如下:

  。瀏覽器緩存:瀏覽器緩存DNS記錄一段時間,然而操作系統並沒有告訴瀏覽器每個DNS記錄的生存時間,因此瀏覽器會將其緩存一段固定的時間(一般在2到30分鍾之間)

  。操作系統緩存:如果瀏覽器緩存不包含所需的記錄,則瀏覽器進行系統調用(Windows中的gethostbyname)。操作系統有自己的緩存。

  。路由器緩存:請求繼續到您的路由器,路由器通常具有自己的DNS緩存。

  。ISP DNS緩存:檢查的下一個是ISP的DNS緩存,這里自然也會有一個緩存。

  。遞歸搜索:ISP的DNS服務器開始遞歸搜索,從根名稱服務器通過.com頂級名稱服務器到Facebook的名稱服務器。通常來講,DNS服務器將在緩存中具有.com名稱服務器的名稱,因此對根名稱的服務器的命中是不必要的(不太明白。。。。)

3、瀏覽器向web服務器發送一個http請求

  一般網頁的動態主頁不會存在於緩存中,因為動態頁面都會有一個非常短暫的時間設為過期時間,因此瀏覽器會將此請求發往服務器,get請求命名要提取自己的URL(例如:http://baidu.com),瀏覽器識別自己的請求頭,並說明自己接受哪一類類型的響應等

4、服務器的永久重定向響應(從http://baidu.com 到 http://www.baidu.com)

  服務器收到請求后開始響應,將http://baidu.com重定向到 http://www.baidu.com

5、瀏覽器跟蹤重定向地址

  瀏覽器知道http://www.baidu.com是正確的URL,因此它會發出另一個get請求

6、服務器處理請求

  服務器將受到get請求,處理它並發送回應

7、服務器返回一個http響應

  服務器生成並發回響應,包含響應頭,響應正文,緩存時間信息,以及其他信息

8、瀏覽器顯示HTML

9、瀏覽器發送請求獲取嵌入在HTML中的資源(如:圖片、音頻、視頻、CSS、JS等)

10、瀏覽器發送異步請求(如ajax請求)

11、頁面構建完成


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM