網頁瀏覽器 (Web Browser) 主要是用來檢索、呈現和瀏覽「全球資訊網」(World Wide Web) 的網頁、文字、影像等內容的應用程式,然而也可用於局部區域網路和電腦的檔案系統。瀏覽器遵照一種網路協議(協定) HTTP (HyperText Transfer Protocol) 所規定的標準,來傳送和接受WWW文件,如超文本之一的HTML。此協議規定瀏覽器得依循 URL或URI 指示出的資源位置,向伺服器端提交請求,伺服器處理後再將回應傳送給位於客戶端(用戶端)的瀏覽器,從而形成 Client-server (有人細分為Browser-server)主從架構。隨著技術演進,傳統的主從架構也獲得一些改良,例如 AJAX被設計來減少客戶端等待伺服器端的回應時間。在全球資訊網傳輸的內容,例如HTML、XML等標記語言(置標語言)、CSS、圖像、超連結以及 Javascript 等,這些內容需要由瀏覽器的排版引擎(或稱瀏覽器內核)來取得並決定網頁的顯現和構成方式。換句話說,同個網頁原始檔,在不同的瀏覽器內核可能會呈現出不同的高度、寬度和佈局,而使用特定語法或技術的網頁(非W3C標準),則必須要有相應支援的瀏覽器才能正確執行,例如IE可以執行 ActiveX 控制項,而Firefox不行。
一、簡史
瀏覽器的誕生是基於全球資訊網的發明,其發明者為蒂姆·伯納斯-李(Tim John Berners-Lee)。他將超文本(HyperText)與網際網路兩個技術,以 URI 結合起來,發明了全球資訊網,並形成三個主要的全球資訊網標準:URI、HTTP和HTML。1990年,他發明首個瀏覽器,WorldWideWeb,並將其介紹出去,其後瀏覽器就與全球資訊網的發展息息相關,而一直要到可顯示圖像的 NCSA Mosaic 發表後,全球資訊網才真正火紅起來。
1994年,NCSA中Mosaic 項目的負責人 Marc Andreesen 辭職,創辦網景通訊公司 (Netscape)。到了隔年,這個市場很快就有競爭者,網景公司發表的產品 Netscape Navigator 與微軟公司的產品 Internet Explorer,掀起一場兩公司間的瀏覽器大戰。 微軟和網景這兩家公司,分別在瀏覽器加入許多互不相容的 HTML 擴展代碼以及引入新技術,如 Javascript、ActiveX 等,試圖以此取勝,在這場競爭中,公開標準、產品穩定性和安全漏洞的修補被擺在次要的位置,各種網頁特效反而成為競逐的重點。這場大戰,最後由微軟公司取 得勝利,網景公司在1998年被美國在線公司收購落幕。另外由於微軟將IE和當時市佔率最高的作業系統 Windows 捆綁出售,而引發美國司法機構與微軟公司之間的反壟斷官司。
1998年,網景公司開放其產品的原始碼,並沿用Mozilla的名稱,透過對程式徹底重寫,Mozilla已和舊產品有大幅度的不同。2002年由Mozilla分出的瀏覽器實驗性專案開始,歷經多次的改名和改版,在2004年以Firefox之名推出1.0版。由於Firefox推出與IE競爭,以及對於IE安全性的疑慮等因素,IE市佔率有下降的趨勢,在2005年最後一季,IE的市佔率跌至85%左右。除了Firefox,其他一同與IE競爭的瀏覽器尚有Maxthon、Opera、Safari、Google Chrome、Konqueror等等。根據Net Applications的數據,09年第二季時瀏覽器的使用率,IE佔據65.79%、Firefox佔有22.56%、Safari佔有8.2%、Chrome佔有1.58%、Opera佔有0.70%、其他瀏覽器佔0.27%。
二、功能
不 同的瀏覽器功能有其差異,但大抵上都有著類似的使用者介面、結構和運作方式,如大部分的瀏覽器都具備「上一頁」、「下一頁」、「重新戴入」、「停止戴 入」、「位址列」、「工具列」、「狀態列」、「書籤/我的最愛」等基本功能。瀏覽器的基本結構模型也大同小異,大致以DOM為核心。透過分析器對XML和 HTML文檔解析,並由DOM的相關元件將HTML文檔組織起來進行操作,經由 JavaScript Engine 對伺服器端傳來的Javascript解釋執行,最後由排版引擎進行排版輸出。上述即為瀏覽器的核心部份,再搭配介面、數據庫、插件等等就組合成整個瀏覽 器。
瀏覽器的運作基本遵照 HTTP,而一些瀏覽器也支援HTTPS、FTP,甚或更多的網路協議,例如IRC、WAP等等。以HTTP為例,瀏覽器將訊息傳給伺服器端後,再將其訊息以排版引擎呈現和組合。詳細的流程是,與伺服器交互→把HTML解析成DOM樹 →對DOM樹的可視元素,分配位置、高度、寬度→視覺化。這過程還得要加上Javascript以及CSS的影響,JavaScript Engine會解釋執行Javascript,以實現該語法所要的效果。排版引擎也會在視覺化前,視呼CSS的規範,呈現相應的顏色字型。此外瀏覽器還會 做幾件事,例如增刪改查Cookie文件、對各種控件兼容,包括AciiveX、Flash、JAVA Applet等、提供相應的安全驗證機制,比如SSL、電子證書(Digital Certificate)應用等等。詳細的說明以及圖解可以看瀏覽器的結構、瀏覽器結構分析、瀏覽器排版引擎模型、解釋一下各瀏覽器的內核,排版引擎 – Firefox完全手冊。
三、各家瀏覽器
各家瀏覽器會因其採用的排版引擎、介面設計、標準支援程度、開放原始碼、網頁讀取速度等等因素,而各有其優缺點,詳細可參考List of web browsers、Comparison of web browsers、Web Browser Reviews等瀏覽器列表和評比,另對於標準支援度測試可以參考Acid2和Acid3。以下將簡要介紹一些知名的瀏覽器。
Internet Explorer
微軟公司推出基於 Windows 作業系統的一款網頁瀏覽器,最新版本是Internet Explorer 8,然而仍有不少的用戶依然使用與整合至Windows XP的Internet Explorer 6。Internet Explorer使用了Trident排版引擎,幾乎完整支援HTML、XML 1.0、DOM Level 1和CSS 1,部份支援CSS 2和 DOM Level 2(IE8完整支援 CSS 2),並引進一系列的特有專利技術。IE大量使用微軟特產的組件對象模型 (COM) ,它允許第三方廠商透過瀏覽器幫助物件(BHO)添加功能,並允許網站透過ActiveX提供豐富的內容。此外也使用群組原則,意指伺服器管理者可以強制 設定該區域用戶僅能使用IE部份功能或改變介面,例如禁止用戶下載檔案,亦可策略性的為個別用戶做個別設定。近期的版本增加彈出視窗封鎖、分頁瀏覽、 RSS、釣魚篩選、頁面縮放、整合性搜尋列等功能。IE因為其廣泛流行、使用ActiveX、發佈更新速度較慢等緣故,容易為間諜軟體、廣告軟體、電腦病 毒攻擊,使其安全性遭受批評。對於W3C標準支援較差/慢,大量引入特有技術,亦使IE遭到來自網頁開發者等人的批評。
Mozila Firefox
Mozilla基金會與開放源碼社群共同開發的跨平台網頁瀏覽器,最新版本是Mozilla Firefox 3,另有3.5b4測試版,從2005年開始,每年都被媒體PC Magazine選為年度最佳瀏覽器。Firefox 使用開放源碼的網頁排版引擎Gecko,Gecko 能夠讓瀏覽器儘可能按W3C標準來顯示網頁內容。Firefox 包含許多突出的特色,像是分頁瀏覽、即時書籤(RSS)、下載管理員、沙盒安全模組、反釣魚保護、可縮放圖片網頁、封鎖彈出視窗及自訂搜尋引擎等等。此外 可透過第三方開發者貢獻的Add-Ones(附加元件、擴充套件)來強化功能,高擴充性和自訂性是Firefox的特色之一。較受歡迎的有專門瀏覽 IE only 網頁的IE Tab、阻擋網頁廣告的Adblock Plus、下載FLV格式在線影片的Video Downloader Helper、保護電腦安全的NoScript等。 截至2008年,Firefox可用的附加元件多於2,000種。在Firefox 3這個新版本,修正以往的許多錯誤,也增強對於網頁標準的相容性,並解決過去所詬病的記憶體洩漏問題。3.1測試版本,使用新的JavaScript引 擎,大幅提升JavaScript效率以及運算速度。Firefox的開發目標是「盡情的上網瀏覽」和「對多數人來說最棒的上網體驗」。
Safari
蘋果公司所開發的網頁瀏覽器,內建於Mac OS X,也是iPhone與iPod touch的指定瀏覽器。2007年後也推出支援Windows的版本。最新版本是Safari 3,另也公開了4.0測試版。Safari使用蘋果自有的WebKit來進行網頁排版及執行JavaScript。WebKit內含WebCore排版引擎及JavaScriptCore引擎,分別由KDE的KHTML及KJS引擎衍生而來。WebKit是以LGPL方式授權的自由軟體,但Safari瀏覽器自身的外觀,如用戶介面等,則維持專有。Safari的特色包含內置RSS/Atom閱讀器、私密瀏覽、收藏及電郵網頁、搜尋網址書籤、分頁瀏覽、反釣魚、讀取網頁速度快等等。
Google Chrome
由Google公司開發的網頁瀏覽器,”Chrome”是化學元素「鉻」的英文名稱,採用BSD許可證授權並開放原始碼,其程式碼是基於其他開放原始碼軟體所撰寫,包括 WebKit 和 Mozilla,並開發出稱為「V8」的高效能 JavaScript 引擎。Google Chrome 的整體發展目標是提升穩定性、速度和安全性,並創造出簡單且有效率的使用者介面。CNET旗下的Download.com網站評出的2008年6大最佳 Windows應用程式,其中Google Chrome排名首位。該軟體的 Beta 測試版本在2008年9月2日釋出,正式版本於2008年12月11日釋出,目前提供 43 種語言版本,但僅適用於Windows XP及Vista,並不支援更早期的版本。Mac OS X 和 Linux 版本正在研發中。
Chrome在安全性、穩定性、速度和介 面都改良不少。例如使用沙盒和黑名單阻止惡意軟體和釣魚網站。具有無痕瀏覽(類似與Safari的「私密瀏覽」和Internet Explorer 8的「InPrivate」),可在完全隱密的情況下瀏覽網頁,用戶任何活動都不會被記錄下來。Multiprocessing功 能則使分頁將位於程式視窗的外沿單獨存在,當資源過高或崩潰時,不會因為一個分頁的停頓而整個程式當掉。採用V8的Chrome可能是所有瀏覽器裡運行 JavaScript速度最快的。Chrome現在不支援滑鼠手勢和RSS功能,其第三方的附加元件以及支援亦仍在醞釀中。
Opera
挪威 Opera Software ASA製作的支援多頁面標籤式瀏覽的網路瀏覽器,新版本的Opera增加了大量網路功能,故官方將Opera定義為一個網路套件。目前最新穩定版本為9.64,測試版本為Opera 10。Opera支援多種平台,包含Windows、Linux、Mac等、手機以及任天堂DS、Wii。Opera使用Presto最 為其排版引擎,嚴格執行行W3C網頁標準,不支援其它擴展標準和ActiveX,不支援某些只對IE相容的頁面,使其安全性高,相容性低。Opera的特 徵包含利用緩存機制,快速戴入頁面;功能眾多,如POP郵件、IRC聊天、RSS瀏覽、語音控制瀏覽、BT下載以及各種天氣預報、小遊戲等小工具;具人性 化介面,支援分頁瀏覽、滑鼠手勢、頁面縮放以及自訂頁面格式;安全性高,可以抵禦惡意代碼攻擊、釣魚攻擊等網路攻擊、更新頻繁。
參考來源
網頁瀏覽器-維基百科
瀏覽器大戰-維基百科
網頁瀏覽器的使用分佈-維基百科
Internet Explorer-維基百科
Firefox-維基百科
Safari-維基百科
Google Chrome-維基百科
Opera-維基百科
瀏覽器的結構
瀏覽器結構分析
網頁瀏覽器「內核」與「外殼」的是是非非
新版Safari的JavaScript速度直逼Chrome
各瀏覽器的內核,排版引擎
各瀏覽器的內核,排版引擎 續1
各瀏覽器的內核,排版引擎 續2
各瀏覽器的內核,排版引擎 續3


1 Comment
Monetize Your Mobile Traffic
Mojiva’s publisher solutions make it easy to control and monetize content in the mobile space. The platform provides everything needed to accurately track performance, and manage yield…simply. http://bit.ly/c7tikY