1、什麼是瀏覽器css
要想了解瀏覽器的運行原理,首先必需要先了解什麼是瀏覽器。html
瀏覽器是指能夠顯示網頁服務器或者文件系統的HTML文件(標準通用標記語言的一個應用)內容,並讓用戶與這些文件交互的一種軟件。前端
瀏覽器的主要功能就是向服務器發出請求,在瀏覽器窗口中展現您選擇的網絡資源。這裏所說的資源通常是指 HTML 文檔,也能夠是 PDF、 圖片或其餘的類型。資源的位置由用戶使用URI(統一資源標符)指定。web
目前使用的主流瀏覽器有五個:Internet Explorer、 Firefox、 Safari、 Chrome 和 Opera。數據庫
1. 瀏覽器按照引擎分類
Trident引擎:Internet Explorer後端
Webkit引擎:Chrome(28版本後基於blink,blink是webkit的一個分支)和Safar瀏覽器
Gecko引擎:Firefox緩存
Presto引擎:早期Opera採用,後用webkit引擎服務器
下面是各大瀏覽器的用戶佔有率cookie
瀏覽器的主要組件包括:
瀏覽器組成部分如圖所示:
3、瀏覽器內核工做原理簡介
瀏覽器包含不少個模塊,有網絡、資源管理、網頁瀏覽、頁面管理、插件、帳戶、開發者工具等等。其中,網頁瀏覽功能模塊是瀏覽器的核心,它主要完成從HTML文檔到可視化的圖像轉換工做,這是瀏覽器內核的主要功能。
一般瀏覽器內核也被稱爲渲染引擎,它的輸入是網絡和存儲模塊得到的HTML文檔(包括CSS,JavaScript),渲染引擎的輸出就是這些HTML元素描述的圖像和JS描述的控制動做。
渲染引擎主要分爲HTML解釋器、CSS解釋器、佈局以及JavaScript引擎。大致的流程以下:網頁內容通過HTML解釋器後,構建一顆DOM樹,而且將文檔中包含的JavaScript腳本交由JS引擎處理,將CSS樣式表交由CSS解釋器處理;最終DOM樹接收CSS解釋器解析的樣式信息來構建中間模型——繪圖模型。該模型再通過佈局模塊計算內部各元素的位置和大小信息,最後由繪圖模塊完成從該模型到圖像的繪製。
4、前端處理流程簡介
一、輸入url
二、查看瀏覽器緩存,看是否有緩存,若是有緩存,繼續查看緩存是否過時,若是沒有過時,直接返回緩存頁面,若是沒有緩存或者緩存過時,發送一個請求。
三、瀏覽器解析url地址,獲取協議、主機名、端口號和路徑。
四、獲取主機ip地址過程
(1)瀏覽器緩存
(2)主機緩存
(3)hosts文件
(4)路由器緩存
(5)DNS緩存
(6)DNS遞歸查詢
五、瀏覽器發起和服務器的TCP鏈接,執行三次握手
六、三次握手鍊接後,瀏覽器發送一個http請求
七、服務器收到請求,轉到相關的服務程序,期間可能須要鏈接並操做數據庫
八、服務器看是否須要緩存,服務器處理完請求,發出一個響應
九、服務器並根據請求頭包含信息決定是否須要關閉TCP鏈接
十、瀏覽器對接收到的響應進行解碼
十一、瀏覽器解析收到的響應並根據響應的內容進行構建DOM樹,構建render樹,渲染render樹等過程
十二、處理嵌入的其餘資源如css文件、js文件、圖片文件、音視頻等文件。