一個頁面從輸入url到頁面加載顯示完成,中間都經歷了什麼

 

 

第一種解釋:css

通常會經歷如下幾個過程:html

一、首先,在瀏覽器地址欄中輸入urlajax

二、瀏覽器先查看瀏覽器緩存-系統緩存-路由器緩存,若是緩存中有,會直接在屏幕中顯示頁面內容。若沒有,則跳到第三步操做。數據庫

三、在發送http請求前,須要域名解析(DNS解析)(DNS(域名系統,Domain Name System)是互聯網的一項核心服務,它做爲能夠將域名和IP地址相互映射的一個分佈式數據庫,可以令人更方便的訪問互聯網,而不用去記住IP地址。),解析獲取相應的IP地址。瀏覽器

dns也是能夠進行優化加載速度的緩存

 

四、瀏覽器向服務器發起tcp鏈接,與瀏覽器創建tcp三次握手(TCP即傳輸控制協議。TCP鏈接是互聯網鏈接協議集的一種。)服務器

五、握手成功後,瀏覽器向服務器發送http請求,請求數據包tcp

六、服務器處理收到的請求,將數據返回至瀏覽器分佈式

七、瀏覽器收到HTTP響應優化

八、讀取頁面內容,瀏覽器渲染,解析html源碼

九、生成Dom樹、解析css樣式、js交互

十、客戶端和服務器交互

十一、ajax查詢

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

  • 瀏覽器緩存:瀏覽器會記錄DNS一段時間,所以,只是第一個地方解析DNS請求;
  • 操做系統緩存:若是在瀏覽器緩存中不包含這個記錄,則會使系統調用操做系統,獲取操做系統的記錄(保存最近的DNS查詢緩存);
  • 路由器緩存:若是上述兩個步驟均不能成功獲取DNS記錄,繼續搜索路由器緩存;
  • ISP緩存:若上述均失敗,繼續向ISP搜索。

 

第二種解釋:

第一步:客戶機提出域名解析請求,並將該請求發送給本地的域名服務器。
第二步:當本地的域名服務器收到請求後,就先查詢本地的緩存,若是有該紀錄項,則本地的域名服務器就直接把查詢的結果返回。
第三步:若是本地的緩存中沒有該紀錄,則本地域名服務器就直接把請求發給根域名服務器,而後根域名服務器再返回給本地域名服務器一個所查詢域(根的子域)的主域名服務器的地址。
第四步:本地服務器再向上一步返回的域名服務器發送請求,而後接受請求的服務器查詢本身的緩存,若是沒有該紀錄,則返回相關的下級的域名服務器的地址。
第五步:重複第四步,直到找到正確的紀錄
相關文章
相關標籤/搜索