瀏覽器為什麼要開放網頁源代碼?


瀏覽器最重要的的部分就是「Rendering Engine」,中文譯為「渲染引擎」,我們一般稱之為「瀏覽器內核」。它負責對網頁語法的解釋並渲染網頁。所以當我們說一款瀏覽器的內核是什麼的時候一般就是指該瀏覽器採用什麼渲染引擎。渲染引擎決定了瀏覽器如何顯示網頁的內容以及頁面的格式信息。

首先,我們應該簡單的了解下五大主流瀏覽器內核是什麼?

  • 1:Gecko/Firefox內核:Netscape6開始採用的內核,後來的Mozilla FireFox(火狐瀏覽器) 也採用了該內核,Gecko的特點是代碼完全公開,因此,其可開發程度很高,全世界的程序員都可以為其編寫代碼,增加功能。因為這是個開源內核,因此受到許多人的青睞。而Firefox的創始研發人員其實是來自於IE的研發人員,並且也是因為當時IE不使用W3C標準,從而脫離出IE成立隊伍進行的研發,從而誕生了Firefox。
  • 2:Presto內核,opera瀏覽器的使用的內核。Presto內核:Presto是一個由Opera Software開發的瀏覽器排版引擎,供Opera 7.0及以上使用。該款引擎的特點就是渲染速度的優化達到了極致,也是目前公認網頁瀏覽速度最快的瀏覽器內核,然而代價是犧牲了網頁的兼容性
  • 3:WebKit內核:Webkit(Safari內核,Chrome內核原型,開源):它是蘋果公司自己的內核,也是蘋果的Safari瀏覽器使用的內核。 Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是從KDE的KHTML及KJS引擎衍生而來,它們都是自由軟體,在GPL條約下授權,同時支持BSD系統的開發。WebKit 內核在手機上的應用也十分廣泛,例如 Google 的手機 Gphone、 Apple 的 iPhone, Nokia』s Series 60 browser 等所使用的 Browser 內核引擎,都是基於 WebKit。而在2003年,Apple 宣布發布首款他們自主開發的 web 瀏覽器:Safari。它的呈現引擎叫 WebKit。比如360安全瀏覽器就是使用WebKit內核進行渲染。
  • 4:Trident/IE內核:IE內核在1997年的IE4中首次被採用,是微軟公司在Mosaic代碼的基礎上改進而來。並且一直沿用到現在的IE11,也是我們常見熟知的「IE內核」。Trident實際是一款開放的內核,也導致出現了許多採用IE內核而非IE瀏覽器(俗稱殼瀏覽器)的湧現,像2345瀏覽器、騰訊TT、淘寶瀏覽器、瑞星安全瀏覽器等。但是後來由於微軟很長時間都沒有更新Trident內核,導致了兩個非常嚴重的後果:一是Trident內核曾經幾乎與W3C標準脫節(2005年);二是這期間Trident內核的大量Bug等安全性問題沒有得到及時解決,然後加上一些致力於開源的開發者和一些學者們公開認為IE瀏覽器不安全的觀點,導致很多用戶轉向了其他內核廠商的瀏覽 器,Firefox和Opera就是這個時候興起的。由此看出,一個瀏覽器的開放性對其自身發展的重要性。
  • 5:chromium內核(最年輕的瀏覽器內核),2008年由大名鼎鼎的互聯網巨頭Google公司發布的首款瀏覽器Chrome瀏覽器的內核。chromium fork 自開源引擎 webkit,卻把 WebKit 的代碼梳理得可讀性提高很多,所以以前可能需要一天進行編譯的代碼,現在只要兩個小時就能搞定。因此 Chromium 引擎和其它基於 WebKit 的引擎所渲染頁面的效果也是有出入的。所以有些時候是把chromium與webkit區分開來講的。

瀏覽器器可以查看網頁源代碼意味著編程人員可以非常容易地學習網頁製作。而初學者最初的學習方式都是簡單地複製某一網頁,然後根據需要進行修改。即使網頁的製作代碼受版權的保護,這也不妨礙其他人的學習。

有很多方式可以網頁源代碼無法查看,例如蘋果公司的AppleScript語言,可以讓作者輕易地將腳本運行代碼隱藏起來。但是,如果瀏覽器不能查看源代碼,那麼網路上有關網頁編程的公共資源就會大大減少,這樣一來必回導致萬維網的發展和創新。

開放式的源代碼查看可以促進編程人員之間的技術交流,也更利於初學者的學習。在古代富人才能讀書,而窮人卻無書可讀,這是為什麼呢?皆是因為豪貴封閉式的交流,不想改變階層而已。同樣的道理應用在瀏覽器開放源代碼上,才能使萬維網更加繁榮進步。


道理很簡單,因為網頁傳輸協議是文本協議!

數據在電腦上都是以文件的形式的保存的!這些文件狹義上可以分為兩類:文本文件和二進位文件!文本文件的內容可以通過編碼格式轉化為可閱讀文字!二進位文件則無法轉化!它們必須通過某個特定軟體才能解析!像doc文件必須需要word,mp3則需要音頻軟體,avi文件則需要·……你們懂的!

網頁就是一個文本文件!因此只要使用合適的編碼就能直接直接閱讀文字!因此根本沒有秘密可言!至於瀏覽器只是一個網頁的渲染器!它的功能是渲染網頁的樣式!這就像收音機的一樣!它無法隱藏接收的電波!


互聯網的興起與http協議的簡單設計有密不可分的關係,使用文本加標記的方式來描述網頁結構,大大的提升了互聯網通信的可讀性,這也是http與其他通信協議的不同點之一,說白了,網頁就是給用戶看的,源代碼沒什麼保密的必要。


推薦閱讀:

加入餓了么等外賣平台,餐廳利潤下降15-20%,外賣優先,影響翻台率與體驗感,怎麼辦?
為什麼張一鳴說《基礎生物學》是對他影響最大的書?
怎麼樣能拍出星軌?
外媒:為什麼在西歐用全球首款AI晶元麒麟970的華為Mate10銷量翻倍?

TAG:源代碼 | 科技 | 瀏覽器 |