91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

不只是前端,后端、產品和測試也需要了解的瀏覽器知識

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2024-07-01 18:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、我們?yōu)槭裁匆私鉃g覽器?

1. 對于前端開發(fā)者

1.瀏覽器是用戶體驗的第一線。我們需要了解瀏覽器的工作原理,才能有效地設計和實現(xiàn)用戶界面,確保良好的用戶體驗。

2.好的產品需要考慮瀏覽器兼容性。我們需要了解這些差異,以確保網站或應用在不同的瀏覽器中都能正常工作,因為不同的瀏覽器對CSS、JavaScript等的支持程度和實現(xiàn)細節(jié)可能有所不同。

3.追求良好的性能需要我們了解瀏覽器的渲染機制、JavaScript引擎的工作原理,因為他們直接影響到頁面的加載速度和運行效率。

4.對用戶信息的安全性的考慮需要我們關注瀏覽器。我們需要了解瀏覽器的安全特性,如同源策略、內容安全策略等,才能更好地保護用戶數(shù)據(jù)不受XSS、CSRF等攻擊。

5.研發(fā)過程中需要使用調試工具,瀏覽器提供的開發(fā)者工具,可以幫助我們調試代碼、分析性能、檢查網絡請求等。

2. 對于后端開發(fā)者

1.在進行接口設計時,后端開發(fā)者需要設計API供前端調用,了解瀏覽器的工作原理有助于設計更高效、更安全的接口。

2.在前后端分離的架構中,后端提供的是服務端API,前端通過瀏覽器調用這些API。后端開發(fā)者需要了解瀏覽器的HTTP請求方式、跨域問題等,以確保API的正確實現(xiàn)和調用。

3.在性能監(jiān)控過程中,后端開發(fā)者可能需要關注由于前端代碼不優(yōu)化導致的服務器負載問題,如過多的HTTP請求、大量的數(shù)據(jù)傳輸?shù)龋@需要一定的瀏覽器知識來共同解決問題。

4.對于追求全棧開發(fā)能力的后端開發(fā)者,了解瀏覽器相關知識是必不可少的,這有助于后端更好地理解整個系統(tǒng)的工作流程,提高跨領域的協(xié)作能力。

二、瀏覽器發(fā)展概述

1. 宏觀發(fā)展

?

?

?

1. 瀏覽器降生

1990 年,英國計算機工程師蒂姆·伯納斯·李(Tim Berners-Lee)在瑞士的歐洲核子研究組織(CERN)工作時,開發(fā)出首個 Web 服務器與圖形化 Web 瀏覽器。他將這個進入互聯(lián)網世界的新窗口,稱為“WorldWideWeb”(即“萬維網”)。

一年后,伯納斯·李(Berners-Lee)委托 CERN 的數(shù)學系學生尼古拉·佩洛(Nicola Pellow)編寫了“命令行模式瀏覽器”,這是一款可在簡易計算機終端中使用的瀏覽器。

2. 瀏覽器涿鹿中原

1.1993年Mosaic瀏覽器的發(fā)布標志著圖形界面Web瀏覽器的誕生。它是由伊利諾伊大學厄巴納-香檳分校的國家超級計算應用中心(NCSA)開發(fā)的。

2.1994年Mosaic的一些原開發(fā)者創(chuàng)立了Netscape公司,并推出了Netscape Navigator,它迅速成為最受歡迎的瀏覽器。

3.1995年微軟推出了Internet Explorer(IE),并將其與Windows操作系統(tǒng)捆綁銷售,這一策略極大地推動了IE的市場份額。

4.1995-2001年這段時間,Netscape Navigator和Internet Explorer之間的競爭非常激烈。最終,IE憑借與Windows的捆綁優(yōu)勢贏得了這場戰(zhàn)爭。

5.2003年蘋果公司推出了自家的瀏覽器Safari。

6.2004年Mozilla Foundation發(fā)布了Firefox瀏覽器。它是從Netscape的源代碼發(fā)展而來的,因其開源性質、安全性和擴展性受到用戶喜愛。

7.2008年谷歌發(fā)布了Chrome瀏覽器,以其速度、簡潔和創(chuàng)新的多進程架構迅速獲得了市場份額。

8.2004-2010年隨著Firefox和Chrome的崛起,瀏覽器市場再次進入競爭激烈的階段。IE的市場份額開始下滑,Chrome和Firefox成為主要的競爭對手。

9.2014年HTML5標準最終確定,推動了Web技術的進一步發(fā)展,各大瀏覽器廠商都開始支持這一標準。

10.2015年微軟發(fā)布了新的瀏覽器Edge,以取代老舊的IE瀏覽器。Edge最初使用了自家的EdgeHTML渲染引擎,后來轉而使用Chromium的Blink引擎。

3. 小結一下

瀏覽器的發(fā)展是一個持續(xù)的過程,廠商之間的競爭也在推動著技術的進步。隨著互聯(lián)網技術的不斷演進,我們可以預期瀏覽器將繼續(xù)在速度、安全性、用戶體驗和功能性上進行創(chuàng)新;隨著智能手機和平板電腦的普及,移動瀏覽器的重要性日益增加,Safari在iOS設備上占據(jù)主導地位,而Chrome在Android設備上成為主流。

2. 微觀發(fā)展

1. 單進程架構

顧名思義,單進程瀏覽器是指瀏覽器的所有功能模塊都是運行在同一個進程里,這些模塊包含了網絡、插件、JavaScript 運行環(huán)境、渲染引擎和頁面等。其實早在 2007 年之前,市面上瀏覽器都是單進程的。單進程瀏覽器的架構如下圖所示:

?

?

?

如此多的功能模塊運行在一個進程里,是導致單進程瀏覽器不穩(wěn)定、不流暢和不安全的一個主要因素。原因如下:

(1)不穩(wěn)定

早期瀏覽器需要借助于插件來實現(xiàn)諸如 Web 視頻、Web 游戲等各種強大的功能,但是插件是最容易出問題的模塊,并且還運行在瀏覽器進程之中,所以一個插件的意外崩潰會引起整個瀏覽器的崩潰。除了插件之外,渲染引擎模塊也是不穩(wěn)定的,通常一些復雜的 JavaScript 代碼就有可能引起渲染引擎模塊的崩潰。和插件一樣,渲染引擎的崩潰也會導致整個瀏覽器的崩潰。

(2)不流暢

從上面的“單進程瀏覽器架構示意圖”可以看出,所有頁面的渲染模塊、JavaScript 執(zhí)行環(huán)境以及插件都是運行在同一個線程中的,這就意味著同一時刻只能有一個模塊可以執(zhí)行。

?

function test() {
    while(true) {
        console.log('test')
    }
}

如果讓這個腳本運行在一個單進程瀏覽器的頁面里,它會獨占整個線程,導致其他運行在該線程中的模塊就沒有機會被執(zhí)行。因為瀏覽器中所有的頁面都運行在該線程中,所以這些頁面都沒有機會去執(zhí)行任務,這樣就會導致整個瀏覽器失去響應,變卡頓。

(3)不安全

插件可以使用 C/C++ 等代碼編寫,通過插件可以獲取到操作系統(tǒng)的任意資源,當你在頁面運行一個插件時也就意味著這個插件能完全操作你的電腦。如果是個惡意插件,那么它就可以釋放病毒、竊取你的賬號密碼,引發(fā)安全性問題。

頁面腳本,它可以通過瀏覽器的漏洞來獲取系統(tǒng)權限,這些腳本獲取系統(tǒng)權限之后也可以對你的電腦做一些惡意的事情,同樣也會引發(fā)安全問題。

2. 多進程架構

(1)2008 年 Chrome 發(fā)布時的進程架構

?

?

?

(2)現(xiàn)在的多進程架構

?

?

?

?

1. 瀏覽器進程。主要負責界面顯示、用戶交互、子進程管理,同時提供存儲等功能。

2. 渲染進程。核心任務是將 HTML、CSS 和 JavaScript 轉換為用戶可以與之交互的網頁,排版引擎 Blink 和 JavaScript 引擎 V8 都是運行在該進程中,默認情況下,Chrome 會為每個 Tab 標簽創(chuàng)建一個渲染進程。出于安全考慮,渲染進程都是運行在沙箱模式下。

3. GPU 進程。其實,Chrome 剛開始發(fā)布的時候是沒有 GPU 進程的。而 GPU 的使用初衷是為了實現(xiàn) 3D CSS 的效果,只是隨后網頁、Chrome 的 UI 界面都選擇采用 GPU 來繪制,這使得 GPU 成為瀏覽器普遍的需求。最后,Chrome 在其多進程架構上也引入了 GPU 進程。

4. 網絡進程。主要負責頁面的網絡資源加載,之前是作為一個模塊運行在瀏覽器進程里面的,直至最近才獨立出來,成為一個單獨的進程。

5. 插件進程。主要是負責插件的運行,因插件易崩潰,所以需要通過插件進程來隔離,以保證插件進程崩潰不會對瀏覽器和頁面造成影響。

三、瀏覽器核心部件

1. 瀏覽器界面介紹

?

?

?

1.用戶界面主要是瀏覽器除了網頁顯示范圍以外的部分,包括地址欄、書簽、前進、后退按鈕、歷史記錄等用戶可操作的部分

2.瀏覽器引擎是用于在用戶界面和渲染引擎之間傳送指令或者在客戶端本地緩存中讀寫數(shù)據(jù),它是各個部分之間相互通信的核心

3.渲染引擎主要是負責解析DOM和CSS規(guī)則,瀏覽器內核主要指的就是渲染引擎和JavaScript引擎

4.網絡模塊是負責發(fā)送網絡請求和下載網絡資源

5.JavaScript引擎用于解釋和執(zhí)行JavaScript代碼,如V8

6.UI后端用于繪制基本的瀏覽器控件

7.數(shù)據(jù)持久化存儲是通過瀏覽器引擎提供的API進行調用

2. 目前瀏覽器的使用的渲染引擎和解釋器總結

瀏覽器內核 代表瀏覽器
Trident IE
Webkit Safari、Edge
Blink Chrome
Gecko Firefox
Presto 歐朋
雙核 360瀏覽器、獵豹瀏覽器、搜狗、遨游、QQ瀏覽器、百度瀏覽器、2345瀏覽器

3. 瀏覽器的解釋器

1. Rhino,由Mozilla基金會管理,開放源代碼,完全以Java編寫。

2. SpiderMonkey,第一款JavaScript引擎,早期用于Netscape Navigator,現(xiàn)時用于Mozilla Firefox。

3. JavaSV8,開放源代碼,由Google丹麥開發(fā),是Google Chrome的一部分。

4. criptCore,開放源代碼,用于Safari。

5. Chakra (JScript引擎),用于Internet Explorer11。

6. Chakra (JavaScript引擎),用于Microsoft Edge。

7. KJS,KDE的ECMAScript/JavaScript引擎,最初由哈里·波頓開發(fā),用于KDE項目的Konqueror網頁瀏覽器中。

四、各家瀏覽器目前的市場占比

1. 全球市場占有率

?

?

?

2. 中國市場占有率排名

?

?

?

?

五、整體總結一下

本篇文章主要介紹一下作為研發(fā)了解瀏覽器的必要性, 以及瀏覽器的基本情況和整體的發(fā)展。 在考慮產品定位時(開發(fā)出一款什么樣的目標產品),我們需要對瀏覽器有一定的了解,整篇文章對研發(fā)和產品皆有一定的參考意義。


?

本文主要參考《瀏覽器工作原理與實踐》

如果各位看官喜歡,留下你的的評論,留下你的贊

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 測試
    +關注

    關注

    9

    文章

    6223

    瀏覽量

    131404
  • 前端
    +關注

    關注

    1

    文章

    244

    瀏覽量

    18821
  • 后端
    +關注

    關注

    0

    文章

    33

    瀏覽量

    2533
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    MTBF測試對電子產品的重要性

    MTBF 不只是一個?“小時數(shù)”,它是產品可靠性的身份證,直接決定能不能賣、好不好賣、賣完穩(wěn)不穩(wěn)。下面用最直白的邏輯講清楚它為什么重要。
    的頭像 發(fā)表于 02-25 11:28 ?103次閱讀
    MTBF<b class='flag-5'>測試</b>對電子<b class='flag-5'>產品</b>的重要性

    世強硬創(chuàng)車規(guī)級視覺方案賦能機器人突破技術難題

    當這樣的基因被注入機器人視覺,帶來的不只是參數(shù)的提升,更是從可用到可信的跨越。它不只是一顆攝像頭,而是一套完整的視覺引擎。
    的頭像 發(fā)表于 02-04 17:24 ?1178次閱讀

    無需安裝!在瀏覽器里就能玩轉ESP32/ESP8266,這個神器絕了!

    無需安裝!在瀏覽器里就能玩轉ESP32/ESP8266,這個神器絕了!【往期精選】十年嵌入式最深的痛,不是Bug,而是抓不到日志!vivo宣布原生支持HomeAssistant生態(tài)設備接入(含
    的頭像 發(fā)表于 01-10 10:01 ?912次閱讀
    無需安裝!在<b class='flag-5'>瀏覽器</b>里就能玩轉ESP32/ESP8266,這個神器絕了!

    鴻蒙手機系統(tǒng)6.0用瀏覽器看視頻,視頻顯示不能橫屏。怎么設置?

    鴻蒙手機系統(tǒng)6.0用瀏覽器看視頻,視頻顯示不能橫屏。怎么設置? 如何掂讓這個豎屏切換為橫屏?
    發(fā)表于 12-20 20:10

    開創(chuàng)視覺方案新范式!INDEMIND四目空間智能方案讓導航從追求“精準”邁向“智能協(xié)同”

    導航的終點,不只是“精準移動”,而是空間理解與決策。
    的頭像 發(fā)表于 11-07 17:09 ?2312次閱讀
    開創(chuàng)視覺方案新范式!INDEMIND四目空間智能方案讓導航從追求“精準”邁向“智能協(xié)同”

    儲能,不只是存電那么簡單

    一、到底啥是儲能? 一句話概括:儲能,就是把能量先存起來,等到需要的時候再拿出來用的技術。 您可以把它想象成一個超級“能量銀行”或“能量充電寶”。 充電(儲存能量):當能量充足、便宜甚至免費時(比如
    的頭像 發(fā)表于 11-06 16:49 ?1380次閱讀
    儲能,<b class='flag-5'>不只是</b>存電那么簡單

    Microsoft Edge瀏覽器iOS端插件功能上線

    在最新發(fā)布的 139 版本中,Microsoft Edge 瀏覽器 iOS 端正式支持插件功能!與此同時,Microsoft Edge 安卓端的插件數(shù)量已躍升至近 30 款。廣告攔截、雙語翻譯、資源下載……你的手機瀏覽器,能擁
    的頭像 發(fā)表于 08-19 14:29 ?1788次閱讀

    一顆 M12,見工業(yè)人心:從選型到價值的思考

    一個小小的 M12,可能只是機器上的一個零件,但它承擔著數(shù)據(jù)、信號、動力的流通。 工程師的責任,不只是把它做對,更是讓它在各種環(huán)境里都能“活得長久”。 這背后,不只是技術,還有對客戶、對產業(yè)、對社會的那份責任。
    的頭像 發(fā)表于 08-12 15:34 ?737次閱讀
    一顆 M12,見工業(yè)人心:從選型到價值的思考

    亞馬遜云科技推出Amazon Nova Act SDK預覽版,加速瀏覽器自動化Agent落地

    北京2025年8月5日 /美通社/ --?亞馬遜云科技日前宣布,推出Amazon Nova Act SDK有限預覽版,可快速幫助客戶將基于瀏覽器的Agent從原型部署至生產環(huán)境。該SDK可與亞馬遜云
    的頭像 發(fā)表于 08-06 08:42 ?862次閱讀

    微軟Microsoft Edge瀏覽器構筑立體式安全防線

    在信息爆炸的今天,釣魚網站、詐騙廣告、隱私追蹤層出不窮。Microsoft Edge 瀏覽器為桌面與移動端用戶構筑了立體式安全防線。用七大安全護盾,保護你的上網安全。
    的頭像 發(fā)表于 08-04 15:39 ?1327次閱讀

    進迭時空 V8 RISC-V 后端優(yōu)化

    前言V8是Google開發(fā)及開源的JavaScript和WebAssembly語言編譯引擎,是Chromium項目的一部分,主要應用于Chrome瀏覽器和Node.js等項目,在瀏覽器生態(tài)中發(fā)
    的頭像 發(fā)表于 07-31 09:02 ?1298次閱讀
    進迭時空 V8 RISC-V <b class='flag-5'>后端</b>優(yōu)化

    既是工具人也是情緒搭子,INDEMIND助力打造陪伴機器人新范式!

    陪伴機器人,不只是玩具!
    的頭像 發(fā)表于 06-20 16:39 ?516次閱讀

    老電視如何安裝瀏覽器?

    2017年購買的夏普老電視,1.5G+8G存儲,網上下的瀏覽器APK文件在電視內打開就彈出“解析程序包出現(xiàn)問題”。 未知來源選項已打開,存儲空間清空到只剩下三個應用(只占用300M左右),基本可
    發(fā)表于 06-01 18:57

    芯片前端設計與后端設計的區(qū)別

    前端設計(Front-end Design):聚焦于電路的邏輯功能實現(xiàn)。本質上是在“紙上”設計電路,包括芯片要“干什么”,要“如何運算”。
    的頭像 發(fā)表于 05-16 14:56 ?1320次閱讀

    edge瀏覽器識別 latex語法插件

    默認的瀏覽器是沒有l(wèi)atex識別功能的,容易顯示為亂碼或者源碼,無法正常識別。本插件需要瀏覽器的擴展程序菜單下安裝,能在edge下完美運行。本插件是免費插件。
    發(fā)表于 03-17 18:03 ?1次下載