尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️
當我們在瀏覽器輸入一個URL或者說點擊一個URL開始,到頁面顯示出來,需要經過哪些過程呢?
瀏覽器加載頁面時間線
瀏覽器加載頁面的時間線如下圖所示,主要過程均包含在下圖中。
瀏覽器加載頁面全過程
瀏覽器加載頁面重要過程
瀏覽器頁面準備:如unload前一個頁面、初始化資源等。重定向:如果服務端返回header中定義了重定向才會有這個過程,如果沒有重定向,不會產生這個過程。app cache:會先檢查這個域名是否有緩存,如果有緩存就不需要DNS解析域名。這里的app是值應用程序application,不指手機app。DNS解析:把域名解析成IP,如果直接用ip地址訪問,不產生這個過程。TCP連接:http協議是經過TCP來傳輸的,所以產生一個http請求就會有TCP connect,但是依賴於長連接,不會產生這個過程。發送請求:請求服務端資源。接受請求:接受服務端返回數據。解析HTML結構加載外部腳本和樣式表文件:正常來說JS、css都是外部加載的。解析並執行腳本代碼構建與解析HTML DOM樹加載外部圖片頁面加載完成,頁面正常顯示。
瀏覽器請求某資源時間線
重定向過程
重定向是http協議中的規範,重定向需要和服務端通過http協議通信,因此也有著DNS解析和TCP鏈接等過程,具體如下:
app cachDNS解析TCP連接髮送請求接受請求:響應狀態碼為302,且響應頭中包含重定向地址Location進行重定向:將瀏覽器地址重定向至location指向的地址