天天看點

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

  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);

  載入解析到的資源檔案,渲染頁面,完成。