瀏覽器加載解析渲染(瀏覽器的工做原理)

瀏覽器的主要功能:將用戶選擇的web資源呈現出來。而這,它須要從服務器請求資源,並將其顯示在瀏覽器窗口中。資源的格式一般是html,也包括PDF,image等其餘格式。用戶用URL(Uniform Resource Identifier統一資源標識符)來指定所請求資源的位置,經過DNS(域名系統(英文:DomainNameSystem,縮寫:DNS))查詢,將網址轉換爲IP地址。整個瀏覽器的工做流程以下:html

1.輸入URLweb

2.瀏覽器查找域名的IP地址數據庫

3.瀏覽器給web服務器發送一個http請求瀏覽器

4.網站服務的永久重定向響應緩存

5.瀏覽器跟蹤重定向地址,如今,瀏覽器知道了要訪問的正確地址,因此它會發送另外一個獲取請求服務器

6.服務器「處理」請求,服務器接收到獲取請求,而後處理並返回一個響應網絡

7.服務器發回一個html響應負載均衡

8.瀏覽器開始顯示html分佈式

9.瀏覽器發送請求,以獲取嵌入在html中的對象。在瀏覽器顯示HTML時,它會注意到須要獲取其餘地址內容的標籤。這時,瀏覽器會發送一個獲取請求來從新得到這些文件。這些文件就包括CSS/JS/圖片等資源,這些資源的地址都要經歷一個和HTML讀取相似的過程。因此瀏覽器會在DNS中查找這些域名,發送請求,重定向等等…字體

例如:你發現快過年了,因而想給你的女友買一件毛衣,你打開了 www.taobao.com,這時你的瀏覽器首先查詢DNS服務器,將 www.taobao.com轉換成IP地址。可是,你首先會發現,在不一樣的地區或者不一樣的網絡下,轉換後的IP地址極可能是不同的,這首先涉及負載均衡的第一步,經過DNS解析域名時,將你的訪問分配的不一樣的入口,同時儘量的保證你所訪問的入口時全部入口中較快的一個。 你經過這個入口成功的訪問了www.taobao.com實際的入口IP地址,……通過一系列的複雜的邏輯運算和數據處理,用於給你看的淘寶首頁HTML內容便生成了,瀏覽器下一步會加載頁面中用到的CSS /JS/圖片等樣式、腳本和資源文件。

(一)輸入網址(輸入URL)

(二)瀏覽器查找域名的IP地址(DNS解析)

1.DNS的定義:

 域名系統(DomainNameSystem)是互聯網的一項服務。它做爲將域名和ip地址相互映射的一個分佈式數據庫,可以令人更方便地訪問互聯網。

2.域名的定義:

域名:(英語:Domain Name)是由一串用點分割的名字組成的nternet上某一臺計算機或計算機組的名稱,用於在數據傳輸表示計算機的電子方位(有時也指地理位置)。

 

3.IP地址

IP地址是Internet主機的做爲路由尋址用的數字體標識,人不容易記憶。於是產生了域名這一種字符型標識。

例如,www.wikipedia.org是一個域名,和IP地址208.80.152.2相對應。DNS就像是一個自動的電話號碼簿,咱們能夠直接撥打wikipedia的名字來代替電話號碼(IP地址)。咱們直接調用網站的名字之後,DNS就會將便於人類使用的名字(如www.wikipedia.org)轉化成便於機器識別的IP地址(如208.80.152.2)

 4.DNS的解析過程

       ①本機向local dns請求www.baidu.com

         ②local dns向根域請求www.baidu.com,根域返回com.域的服務器IP

         ③向com.域請求www.baidu.com,com.域返回baidu.com域的服務器IP

         ④向baidu.com請求www.baidu.com,返回cname www.a.shifen.com和a.shifen.com域的服務器IP

         ⑤向root域請求www.a.shifen.com

         ⑥向com.域請求www.a.shife.com

         ⑦向shifen.com請求

         ⑧向a.shifen.com域請求

         ⑨拿到www.a.shifen.com的IP

         ⑩localdns返回本機www.baidu.com cname www.a.shifen.com 以及 www.a.shifen.com的IP

      (1)在瀏覽器中輸入www.google.cn域名,操做系統會先檢查本身本地的hosts文件是否有這個網址映射關係,若是有,就先調用這個IP地址映射,完成域名解析。
      (2)若是hosts裏沒有這個域名的映射,則查找本地DNS解析器緩存,是否有這個網址映射關係,若是有,直接返回,完成域名解析。
      (3)若是hosts與本地DNS解析器緩存都沒有相應的網址映射關係,首先會找TCP/IP參數中設置的首選DNS服務器,在此咱們叫它本地DNS服務器,此服務器收到查詢時,若是要查詢的域名,包含在本地配置區域資源中,則返回解析結果給客戶機,完成域名解析,此解析具備權威性。
      (4)若是要查詢的域名,不禁本地DNS服務器區域解析,但該服務器已緩存了此網址映射關係,則調用這個IP地址映射,完成域名解析,此解析不具備權威性。
      (5)若是本地DNS服務器本地區域文件與緩存解析都失效,則根據本地DNS服務器的設置(是否設置轉發器)進行查詢,若是未用轉發模式,本地DNS就把請求發至13臺根DNS,根DNS服務器收到請求後會判斷這個域名(.com)是誰來受權管理,並會返回一個負責該頂級域名服務器的一個IP。本地DNS服務器收到IP信息後,將會聯繫負責.com域的這臺服務器。這臺負責.com域的服務器收到請求後,若是本身沒法解析,它就會找一個管理.com域的下一級DNS服務器地址(google.com)給本地DNS服務器。當本地DNS服務器收到這個地址後,就會找google.com域服務器,重複上面的動做,進行查詢,直至找到www.google.com主機。
     (6)若是用的是轉發模式,此DNS服務器就會把請求轉發至上一級DNS服務器,由上一級服務器進行解析,上一級服務器若是不能解析,或找根DNS或把轉請求轉至上上級,以此循環。不論是本地DNS服務器用是是轉發,仍是根提示,最後都是把結果返回給本地DNS服務器,由此DNS服務器再返回給客戶機。

(三)瀏覽器給web服務器發送一個HTTP請求

 

那麼,一個頁面,到底是如何從咱們輸入一個網址到最後完整的呈如今咱們面前的呢?還須要瞭解一下瀏覽器是如何渲染的:

相關文章
相關標籤/搜索