使用者輸入一個網址到頁面展示內容的這段時間內,瀏覽器和伺服器都發生了生麼事情?

Just_do發表於2018-08-02

1 在接收到使用者輸入的網址後,瀏覽器會開啟一個縣城來處理這個請求,對使用者輸入的URL地址進行分析判斷,如果是HTTP協議就按照 HTTP方式來處理。

2 呼叫瀏覽器引擎中的對應方法,比如WebView中的loadUrl方法,分析並載入這個URL地址。

3 通過DNS解析獲取該網站對應的IP地址,查詢完成後聯同瀏覽器的COOKIEuserAgent等資訊向網站目的IP發出GET請求。

4 進行HTTP協議會話,瀏覽器客戶端向Web伺服器傳送報文。

5 進入網站後臺的Web伺服器處理請求,如ApacheTomcatNode.js等伺服器。

6 進入部署好的後端應用,如PHPJavaJavascriptPython等後端程式,找到對應的請求處理邏輯,這期間可能會讀取伺服器快取或查詢資料庫。

7 伺服器處理請求並返回響應報文,此時如果瀏覽器訪問過該頁面,快取上有對應的資源,會與伺服器最後修改記錄對比,一致則返回304,否則返回200和對應的內容。

7 瀏覽器開始下載HTML文件(響應報頭狀態碼為200時)或者從本地快取讀取檔案內容(瀏覽器快取有效或響應報頭狀態碼為304時)。

8 瀏覽器根據下載接收到的HTML檔案解析結構建立DOMDocument Object Model,文件物件模型)文件樹,並根據HTML中的標記請求下載指定的MIME型別檔案(如CSSJavascript指令碼等),同時設定快取等內容。

9 頁面開始解析渲染DOMCSS根據規則解析並結合DOM文件樹進行網頁內容佈局和繪製渲染,Javascript提供DOM API操作 DOM,並讀取瀏覽器快取、執行事件繫結等,頁面整個展示過程完成。

相關文章