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

  寫下這篇文章留個記念,各位前端的小夥伴也能夠作個參考,也期待大家的補充。前端

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

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

一、輸入地址

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

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

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

  。瀏覽器緩存:瀏覽器緩存DNS記錄一段時間,然而操做系統並無告訴瀏覽器每一個DNS記錄的生存時間,所以瀏覽器會將其緩存一段固定的時間(通常在2到30分鐘之間)緩存

  。操做系統緩存:若是瀏覽器緩存不包含所需的記錄,則瀏覽器進行系統調用(Windows中的gethostbyname)。操做系統有本身的緩存。服務器

  。路由器緩存:請求繼續到您的路由器,路由器一般具備本身的DNS緩存。併發

  。ISP DNS緩存:檢查的下一個是ISP的DNS緩存,這裏天然也會有一個緩存。異步

  。遞歸搜索:ISP的DNS服務器開始遞歸搜索,從根名稱服務器經過.com頂級名稱服務器到Facebook的名稱服務器。一般來說,DNS服務器將在緩存中具備.com名稱服務器的名稱,所以對根名稱的服務器的命中是沒必要要的(不太明白。。。。)spa

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

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

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

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

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

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

六、服務器處理請求

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

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

  服務器生成併發迴響應,包含響應頭,響應正文,緩存時間信息,以及其餘信息

八、瀏覽器顯示HTML

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

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

十一、頁面構建完成

相關文章
相關標籤/搜索