1. 程式人生 > >從瀏覽器輸入URL到頁面渲染的過程

從瀏覽器輸入URL到頁面渲染的過程

零、背景



一個web安全工程師在學習web安全和web滲透時候,非常有必要了解整個WEB工作過程。

一、輸入URL



這裡是最基本的知識:URL是URI的一種實際應用,URI統一資源表示符,URL統一資源定位符。URL舉例: https://www.xxx.com:443/index.php 前面是協議 https 然後是主機www.xxx.com 然後是埠 443,最後是資源在該主機上針對web系統根目錄(通常為www)的相對路徑。所以可以想象,根據WEB訪問就是獲取資源,已經知道埠、路徑、協議,唯獨缺乏對方的IP了,畢竟HTTP下層是TCP/IP嘛,所以這裡就用到從域名(或者是主機名)獲取其對應的IP地址。

二、解析IP地址



這裡為啥不用DNS呢,是因為在windows裡面不一定是用DNS解析的IP地址哦,還可能是netbios哈

DNS 解析順序


在linux中一般先解析/etc/hosts中的靜態配置的解析,如果不行再利用dns遞迴請求解析域名。在windows中一般是先dns cache(dns快取),然後再hosts檔案,最後是dns遞迴解析。

Netbios 解析順序


首先這個只有windows才會有,一般只在區域網或域內生效,其解析順序域作業系統也就是windows的版本有關係。另外和配置的模式有關係。一般的NetBIOS cache (NetBIOS快取),然後是WINS Server和廣播,最後是LMHOSTS。如果模式不一樣,WINS伺服器解析和廣播的順序有調整。

三、傳送HTTP請求



其實這裡未必是HTTP協議或者HTTPS協議,有可能是其他協議,但是HTTP(HTTPS)協議非常典型,這裡就是以此為例進行講解。這裡傳送HTTP請求,表明請求的資源或者提交的資源,在頭部欄位裡會帶有相應的身份驗證資訊、回話資訊、登入狀態資訊和控制資訊等。

四、伺服器處理並返回響應報文



HTTP請求到大伺服器後,伺服器會進行處理,然後根據處理結果返回相應的返回包,包括返回狀態、返回內容,頭部欄位中的對應的控制資訊等。

五、瀏覽器渲染頁面



現代瀏覽器的渲染過程如下:

  • 1.解析HTML構建DOM樹
  • 2.構建渲染樹
  • 3.佈局渲染樹
  • 4.繪製渲染樹