webkit

開源的瀏覽器引擎

WebKit是一個開源的瀏覽器引擎,與之相對應的引擎有Gecko(Mozilla Firefox等使用)和Trident(也稱MSHTML,IE使用)。同時WebKit也是蘋果Mac OS X系統引擎框架版本的名稱,主要用於Safari,Dashboard,Mail和其他一些Mac OS X程序。

WebKit前身是KDE小組的KHTML,WebKit所包含的WebCore排版引擎和JSCore引擎來自於KDE的KHTML和KJS,當年蘋果比較了Gecko和KHTML后,仍然選擇了後者,就因為它擁有清晰的源碼結構、極快的渲染速度。Apple將KHTML發揚光大,推出了裝備KHTML改進型WebKit引擎的瀏覽器Safari。

背景


WebKit所包含的WebCore排版引擎和JSCore引擎,均是從KDE的KHTML及KJS引擎衍生而來。它們都是自由軟體,在GPL條約下授權,同時支持BSD系統的開發。所以Webkit也是自由軟體,同時開放源代碼。
WebKit的優勢在於高效穩定,兼容性好,且源碼結構清晰,易於維護。
儘管Webkit內核是個非常好的網頁解析機制,但是由於以往微軟把IE捆綁在Windows里(同樣的Webkit內核的Safari捆綁在Apple產品里,Chrome捆綁在Google產品里),導致許多網站都是按照IE來架設的,很多網站不兼容Webkit內核,比如登錄界面、網銀等網頁均不可使用Webkit內核的瀏覽器。
WebKit內核在手機上的應用也十分廣泛,例如Google的手機Android、Apple的iPhone,Nokia’s Series 60 browser等所使用的Browser內核引擎,都是基於WebKit。
WebKit是一個開源項目,其起源可追溯到K Desktop Environment(KDE)。WebKit項目催生了面向移動設備的現代Web應用程序。雖然設備本身的能力和形態因素都相當重要,但移動用戶最熱衷的仍然是內容。如果移動用戶可用的內容只是Internet用戶可用內容的一個很小的子集,那麼用戶體驗充其量也只能劃分為二等。
WebKit還應用在了桌面的Safari瀏覽器內,該瀏覽器是Mac OS X 平台默認的瀏覽器。不管我們討論的是桌面版本還是iPhone或Android上的瀏覽器引擎,WebKit均優先支持HTML和CSS特性。實際上,WebKit還支持尚未被其他瀏覽器採納的一些CSS樣式—這些特性正在得到HTML5規範的考慮。
HTML5規範是一個技術草案集,涵蓋了各種基於瀏覽器的技術,它包括客戶端SQL存儲、轉變、轉型、轉換等。HTML5的出現已經有些時間了,雖然尚未完成,但一旦其特性集因主要瀏覽器平台支持的加入而逐漸穩定后,Web應用程序的簡陋開端也將成為永久的記憶。Web應用程序開發將成為主導—並且不只是在傳統的桌面瀏覽器空間,還將在移動領域。移動將一躍成為首要考慮,而不再是後備之選。

應用平台


iOS:
2007年6月29日,iPhone上市,WebKit進入iPhone OS平台,而且立即成為iPhone OS平台獨一無二的排版引擎。
Android:
Google開發的手機操作系統Android中內置的瀏覽器也是採用的WebKit引擎。
Nokia S60:
諾基亞公司將WebKit移植到Symbian S60操作系統中,並開發了基於Webkit的手機瀏覽器“Web browser for S60”,廣泛用於諾基亞、三星、LG等基於Symbian S60操作系統的手機中。
Web OS:
Palm推出第一款基於WebKit的操作系統,Palm Pre是第一款基於該系統的手機產品。
Linux:
儘管WebKit的原型K內核是由Qt寫成,但Linux下目前最受矚目的WebKit項目卻是Gnome領導的WebKit/Gtk+。隨著奇趣科技於2008年6月被Nokia收購,Qt方面也加快了WebKit的“回歸”進程。
Midori,Google Chrome,GNOME的Epiphany、KDE的Konqueror,瀏覽器。
Windows:
Webkit內核在Windows上發展最晚,Safari(for Windows),Midori,Google chrome,具有雙核模式的傲游3和傲游雲瀏覽器是最為常見的Webkit瀏覽器。2009年推出的safari和Chrome以及2010年推出的搜狗瀏覽器V2.0Beta和傲游3.0beta都使用的webkit引擎完全通過了acid3測試滿分!

引擎分類


瀏覽器的內核引擎,基本上是四分天下:
Trident:IE以Trident作為內核引擎;
Gecko:Firefox是基於Gecko開發;
WebKit:Safari,Google Chrome,傲游3,獵豹瀏覽器,百度瀏覽器opera瀏覽器基於Webkit開發。
Presto:Opera的內核,但由於市場選擇問題,主要應用在手機平台--Operamini。
註:2013年2月Opera宣布轉向WebKit引擎。
註:2013年4月Opera宣布放棄WEBKIT,跟隨GOOGLE的新開發的blink引擎。

內核介紹


webkit內核的瀏覽器
2008年9月2日,谷歌公司發布的第一個版本Google Chrome(中文名為谷歌瀏覽器)就採用了Webkit引擎。
2009年,廣受關注的Android的自帶的瀏覽器也是Webkit內核,載入網頁速度比IE手機瀏覽器快了近一倍。
2010年1月24日,搜狗公司發布搜狗瀏覽器V2.0Beta,採用Chromium引擎,並支持與IE引擎互相切換。
2010年1月24日,傲游瀏覽器3.0beta發布。2012年5月31日已發布3.3.9.1000。傲游3修正了眾多假死問題。擁有雙引擎切換功能。
2010年9月16日360極速瀏覽器發布,這是一款使用Chromium開源代碼(基於webkit內核)的瀏覽器,網頁瀏覽比ie快一倍。
2010年6月11日阿里雲瀏覽器內測第一版(0.1.9.0)發布,這是一款集成Chromium內核、IE內核的瀏覽器。
2010年5月25日,騰訊推出的QQ瀏覽器採用webkit內核以及IE內核。
2011年7月18日,百度推出的百度PC瀏覽器支持IE和Webkit雙內核智能切換。
2013年2月,Opera宣布將用WebKit替代當前的核心瀏覽器引擎。
2013年4月4日谷歌星期三(4月3日)宣布,他們將利用WebKit渲染引擎開發自主的網頁渲染引擎“Blink”。
WebKit2
WebKit2發佈於2010年4月8日,Webkit2的目標是將元件抽象化,並提供更乾淨的網頁渲染,它會利用從周圍的界面或是應用程式的殼,建立一個環境使網頁的內容(JavaScript、HTML、排版等等)將會在另外一個程序(Process)運行,比起WebKit,這個抽象化的做法打算令WebKit2可重複使用一個更簡單的程序。因為WebKit2對比起WebKit有一個不相容的API,所以導致他的名字被改變為WebKit2。
WebKit2僅開放於Mac、Windows及MeeGo-Harmattan.