從瀏覽器輸入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.繪製渲染樹