一個頁面從輸入 URL 到頁面載入顯示完成,這個過程中都發生了什麼?

沂蒙趙發表於2018-08-30
 1、瀏覽器會開啟一個執行緒來處理這個請求,對 URL 分析判斷如果是 http 協議就按照 Web 方式來處理;

2、呼叫瀏覽器核心中的對應方法,比如 WebView 中的 loadUrl 方法; 

 3、通過DNS解析獲取網址的IP地址,設定 UA 等資訊發出第二個GET請求; 

 4、進行HTTP協議會話,客戶端傳送報頭(請求報頭); 

 5、進入到web伺服器上的 Web Server,如 Apache、Tomcat、Node.JS 等伺服器; 

 6、進入部署好的後端應用,如 PHP、Java、JavaScript、Python 等,找到對應的請求處理; 7、處理結束回饋報頭,此處如果瀏覽器訪問過,快取上有對應資源,會與伺服器最後修改時間對比,一致則返回304; 

 8、瀏覽器開始下載html文件(響應報頭,狀態碼200),同時使用快取; 

 9、文件樹建立,根據標記請求所需指定MIME型別的檔案(比如css、js),同時設定了cookie;       

10、頁面開始渲染DOM,JS根據DOM API操作DOM,執行事件繫結等,頁面顯示完成。 簡潔版: 瀏覽器根據請求的URL交給DNS域名解析,找到真實IP,向伺服器發起請求; 伺服器交給後臺處理完成後返回資料,瀏覽器接收檔案(HTML、JS、CSS、圖象等); 瀏覽器對載入到的資源(HTML、JS、CSS等)進行語法解析,建立相應的內部資料結構(如HTML的DOM); 載入解析到的資原始檔,渲染頁面,完成。



相關文章