天天看點

WEB用戶端技術

WEB用戶端技術

Web用戶端的主要作用之一就是用來發送HTTP請求并接收伺服器響應。也就是說,隻要能達成這一目的的任何工具或程式,都可作為Web的用戶端來對待,而不能僅限于浏覽器。比如我們可以使用CURL工具來處理HTTP請求和響應,也可以使用程式設計語言(隻要能支援網絡程式設計的程式設計語言均可,如JAVA, C#, C++, C, PHP等,并且不難,後續章節将具體介紹如何使用Java來處理HTTP協定)。也正因為如此,對Web系統的測試變得不再簡單,我們不能單純隻是考慮在标準的網頁浏覽器中進行測試,還需要考慮到使用者完全有可能繞開浏覽器界面,而直接使用其它工具或者自己編寫程式來完成請求的發送和響應的接收。這對Web系統的安全性提出了挑戰,需要我們在設計系統時考慮到這些因素,因為伺服器在處理請求時是不管請求的來源是否合法的,當然,它也沒法管。這是網絡體系結構的設計所決定的。

基于以上的分析,我們既然可以使用其它工具或者自己編寫程式來處理HTTP請求和響應,那是不是就意味着我們可以開發出自己的浏覽器來呢?理論上來說是這樣的,因為處理HTTP請求和響應本身就是浏覽器的重要工作之一。但是開發的一個浏覽器的技術瓶頸并不在對協定本身的處理上,而在于對響應的解析和對Javascript腳本的解析處理,這牽涉到浏覽器的另一大技術核心:渲染引擎。我們評價一個浏覽器的好與壞,也主要是在對浏覽器的渲染引擎進行評價。我們可以看到,每家廠商的浏覽器的主要功能都差不多,但是處理速度卻不一樣,并且對标準的支援也不盡相同,其核心就在于渲染引擎的不一樣。我們也許會經常聽到浏覽器廠商在做宣傳時會寫上“XXX浏覽器搭載了最新版頁面渲染引擎,速度大幅提升”之類的廣告詞,在原因也就在此。

網頁浏覽器的頁面渲染引擎負責取得網頁的内容(HTML、XML、圖像等等)、整理排版(例如CSS等),以及計算網頁的顯示方式,然後會輸出至顯示器或列印機。所有網頁浏覽器、電子郵件用戶端以及其它需要編輯、顯示網絡内容的應用程式都需要頁面渲染引擎。目前比較流行的頁面渲染引擎有如下幾種:

Trident頁面渲染引擎

IE浏覽器所使用的核心,也是很多浏覽器所使用的核心,通常被稱為IE核心。基于Trident核心的浏覽器非常多,這是因為Trident核心提供了豐富的調用接口。老的Trident核心(比如常說的IE6核心)一直是不遵循W3C标準的,但是由于它的市場佔有率最大,是以後果就是大量的網站隻支援老的Trident核心,依據W3C标準寫的網頁在老的Trident核心下面又出現偏差。目前可供調用的最新版的Trident核心是IE9所用的核心,相較之前的版本對W3C标準的支援增強了很多。

Trident核心的浏覽器:

IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0);

世界之窗1、世界之窗2、世界之窗3;

360安全浏覽器1、360安全浏覽器2、360安全浏覽器3、360安全浏覽器4、360安全浏覽器5;

傲遊1、傲遊2;搜狗浏覽器1;騰訊TT;阿雲浏覽器(早期版本)、百度浏覽器(早期版本)、瑞星安全浏覽器、Slim Browser;

GreenBrowser、愛帆浏覽器(12 之前版本)、115浏覽器、155浏覽器;

閃遊浏覽器、N氧化碳浏覽器、糖果浏覽器、彩虹浏覽器、瑞影浏覽器、勇者無疆浏覽器、114浏覽器、螞蟻浏覽器、飛騰浏覽器、速達浏覽器、佐羅浏覽器;

Gecko頁面渲染引擎

Netscape6啟用的核心,現在主要由Mozilla基金會進行維護,是開源的浏覽器核心,目前最主流的Gecko核心浏覽器是Mozilla Firefox,是以也常常稱之為火狐核心。因為Firefox的出現,IE的霸主地位逐漸被削弱,Chrome的出現則是加速了這個程序。非Trident核心的興起正在改變着整個網際網路,最直接的就是推動了編碼的标準化,也使得微軟在競争壓力下不得不改進IE。不過比較可惜的是,雖然是開源的,也開發了這麼多年,基于Gecko的浏覽器并不多見,除了一些簡單的改動(坑爹的X浏覽器)或者是重新編譯(绫川ayakawa、tete009),深度定制或者增強型外殼的還比較少見。另外就是有一些其它軟體借用了Gecko核心,比如音樂管理軟體SongBird。

常見的Gecko核心的浏覽器

Mozilla Firefox、Mozilla SeaMonkey

Epiphany(早期版本)、Flock(早期版本)、K-Meleon

KHTML頁面渲染引擎和WebKit架構

KHTML,是HTML頁面渲染引擎之一,由KDE所開發。KHTML擁有速度快捷的優點,但對錯誤文法的容忍度則比Mozilla産品所使用的Gecko引擎小。蘋果電腦于2002年采納了KHTML,作為開發Safari浏覽器之用。 WebCore及WebKit引擎均是KHTML的衍生産品; WebKit是 Mac OS X v10.3及以上版本所包含的軟體架構,WebKit是Mac OS X的Safari網頁浏覽器的基礎。

使用KHTML頁面渲染引擎的浏覽器有:Safari,Konqueror, Google Chrome等。Google Chrome即将啟用自己的渲染引擎Blink。

Presto頁面渲染引擎

Presto是一個由Opera Software開發的浏覽器頁面渲染引擎,應用于Opera 7.0~9.60版,它取代了舊版Opera中所使用的Elektra頁面渲染引擎,包括加入動态功能,例如網頁或其部分可随着DOM及Script文法的事件而重新排版。

使用Presto頁面渲染引擎的浏覽器有:Opera,任天堂DS浏覽器。

其它頁面渲染引擎

使用Java軟體平台的HotJava,Opera Mini,UCWEB。

使用Tasman渲染的Internet Explorer for Mac,SN for Mac OS X。

使用純文字界面的Lynx,inks,w3m。

以上都是排版引擎,接下來說說JavaScript引擎。顧名思義,JavaScript引擎就是用來渲染JavaScript的。為什麼要單獨拿出來說呢?因為它涉及到跑分。經常看見很多文章在報道說哪個浏覽器更快,其實大部分說的就是JavaScript的渲染速度,而不是頁面的載入速度。在網速許可的情況下,其實各個浏覽器的頁面載入速度差别不大(Opera遜色一些)。那是不是說對比JavaScript的渲染速度其實沒有意義?也不是這麼說,因為現在JavaScript在頁面中的比重會越來越大,越來越多的動态頁面開始大量借助JavaScript,比如現在主流的SNS、郵箱、網頁遊戲,是以JavaScript的渲染速度也是一個很重要的名額。JavaScript的渲染速度越快,動态頁面的展示也越快。Opera在JavaScript引擎的跑分上面一直都是很牛的,一般來說最新測試版之間PK,Opera基本都會奪冠。

Chakra

查克拉,IE9啟用的新的JavaScript引擎。

SpiderMonkey/TraceMonkey/JaegerMonkey

SpiderMonkey應用在Mozilla Firefox 1.0-3.0,TraceMonkey應用在Mozilla Firefox 3.5-3.6版本,JaegerMonkey應用在Mozilla Firefox 4.0及後續的版本。

V8

應用于Chrome、傲遊3。

Nitro

應用于Safari 4及後續的版本。

Linear A/Linear B/Futhark/Carakan

Linear A應用于Opera 4.0-6.1版本,Linear B應用于Opera 7.0~9.2版本,Futhark應用于Opera 9.5-10.2版本,Carakan應用于Opera 10.5及後續的版本。

KJS

KHTML對應的JavaScript引擎。

可見,Web用戶端是如此的豐富繁雜,這對Web系統測試提出了很大的挑戰,特别是相容性和可用性測試,當然還包含安全性測試。我們不單要熟悉每種渲染引擎和相應浏覽器的特性,還需要了解它們之間的各種差異,便于設計出适合使用者使用的相容性好,安全性高的系統。

WEB伺服器的發展趨勢

  目前,Web伺服器的發展有三個主要趨勢:

從HTML到XML(Extensible Markup Language-可擴充标記語言)

  HTML被稱為“第一代Web語言”,如前面的介紹,HTML作為Web的開發語言,對Web應用的發展起到了關鍵性的作用。但是HTML有一個緻命的缺點:隻适合于人與計算機的交流,不适合計算機與計算機的交流。HTML通過大量的标記來定義文檔内容的表現方式,它僅僅描述了應如何在Web浏覽器頁面上布置文字、圖形,并沒有對Internet的資訊含義本身進行描述,而資訊又是Web應用中最重要的内容。通過HTML表現出來的文字、圖形内容很容易被人了解,但卻不利于計算機程式去了解。另外,HTML的另一個問題就是它的标記集合是固定的,使用者不能根據自己的需要增加标記;而且各種浏覽器的規格不盡相同,要使我們用HTML做的網頁能夠被所有浏覽器正常顯示,我們隻能夠使用W3C(網際網路協會)規定的标記來建立網頁。

  正如前面所說,Web伺服器向Web浏覽器提供的資訊都是來自有一定結構的資料庫,在資料庫裡,為了檢索和管理的友善,資訊按照它本身的意義(如姓名、年齡、工作機關等)被存放在相應的字段裡,一旦這些資料被調出來,經過CGI、ASP、JSP、PHP等轉換成HTML後,其原來的意義無法轉移到HTML标記中來,使用者也就無法按照資訊本來的意義去閱讀。并且,由于作業系統以及資料庫的不同,不同的系統及應用層面之間要想互相了解對方的資料格式是相當困難的。這就需要一種新技術或标準能夠将最初儲存在資料庫伺服器中的原始資料結構在不同的系統層面共享。這種新技術就是XML。

使用XML可以解決上述的難題。W3C對XML作了如下描述:“XML描述了一類被稱為XML文檔的資料對象,并部分描述了處理它們的計算機程式的行為。XML是SGML的一個應用執行個體。從結構上說,XML文檔遵從SGML文檔标準。”同HTML一樣,XML也是一種基于文本的标記語言,都是從SGML(Standard Generalize Markup Language,标準通用标記語言)發展而來,二者的不同在于:XML可以讓我們根據要表現的文檔,自由地定義标記來表現具有實際意義的文檔内容,例如,我們可以定義〈文檔名稱〉〈/文檔名稱〉這樣具有實際意義的标記。而且XML不像HTML那樣具有固定的标記集合,它實際上是一種定義語言的語言,也就是說使用XML的使用者可以定義無窮的标記來描述文檔中的任何資料元素,将文檔的内容組織成豐富的完整的資訊體系。總起來說,XML具有四大特點:便于存儲的資料格式、可擴充性、高度結構化以及友善的網絡傳輸,這些特點為我們建立開放、高效、可擴充、個性化的Web應用提供了一個嶄新的起點。

從有線到無線

  電子商務正在從桌上型電腦向着更為廣泛的無線裝置發展,Cahners In-Stat市場分析家預測,世界範圍内的無線使用者的人數将會從2000年的2.71億增加到2004年的13億。Aberdeen集團的研究主任Darcy Fowkes認為,采用無線方式進行電子商務的優勢并不僅僅在于友善,它還可以節約公司的财力,而且,移動辦公能使工作更加高效。

  然而,由于多種無線網絡類型、标記語言、協定和無線裝置并存的複雜情況,使得網絡内容和資料轉換成能夠被無線裝置所識别的格式并不容易。目前,許多企業都在緻力于開發能夠把應用程式以及網際網路内容擴充到無線裝置上的産品。

  例如,IBM新版本的WebSphere Transcoding Publisher 3.5增加和改進了許多新的特性,可以将企業内部網上的資料翻譯到多種無線裝置上。該版本中新的特性包括對更多的無線裝置、資料格式的支援,以及語言翻譯功能。它基于Java架構,能把用HTML和XML等标記語言編寫的應用程式和資料轉換成WML、HDML(Handheld Device Markup Language)和iMode等無線裝置所能識别的格式,這樣,通過手持裝置就可以通路網際網路上的資訊。

  無線裝置廠商Mobilize也推出了Mobilize Commerce産品,幫助企業進入無線網絡。該軟體可以通過無線連接配接的方式通路企業的内部系統,遠端地實作訂單發送,并進行确認。Mobilize Commerce可以充分利用XML對資訊進行格式轉換,以适合于無線裝置,這些無線裝置包括筆記本電腦、個人數字助理、無線電話、網絡電話和雙向尋呼等。

從無聲到有聲

  世界上現在有十億個電話終端,有超過2億的行動電話。而就人自身的交流習慣來看,人們也更願意利用聽和說的口頭的方式進行交流。

  目前,文本語音轉換器(TTS,Text to Speech)的研究工作已經取得了很大的進步,實作了自動的語言分析了解,并允許TTS的使用者增加更多的韻律、音調在講話中,使TTS系統的發聲更接近人聲。在自動語音識别系統(ASR)領域裡,自動語音識别系統在從整個詞的模仿比對,向音素層次的識别系統方向發展。自動語音識别系統的詞彙表由一個基于聲音片斷的字母表構成,而且這種詞彙表是受不同語言限制的。基于這種方式,在一個寬廣的聲音行列裡,講話能被識别系統發現和挑揀出來,并加以識别。并且,在識别一個詞的時候,每一個音素将從系統的輸入中挑揀出來,拼接組合後與已經有的音素和詞語模闆進行比較,來産生需要的模闆。音素的識别大大減輕了ASR對講話者的依賴性,并且使得它非常容易去建立大型的和容易修改的語音識别字典,進而滿足不同應用市場的需求。

Web語音發展的另一方面是VoiceXML(Voice Extensible Markup Language-語音可擴充标記語言)的進展。VoiceXML的主要目标是要将Web上已有的大量應用、豐富的内容,讓互動式語音界面也能夠全部享受。Web伺服器處理一個來自用戶端應用的請求,這一請求經過了VoiceXML解釋程式和VoiceXML解釋程式語境處理,作為響應,伺服器産生出VoiceXML檔案,在回複當中,要經過VoiceXML解釋程式的處理。VoiceXML 1.0規範基于XML,為語音和電話應用的開發者、服務提供商和裝置制造商提供了一個智能化的API。VoiceXML的标準化将簡化Web上具有語音響應服務的個性化界面的建立,使人們能夠通過語音和電話通路網站上的資訊和服務,像今天通過CGI腳本一樣檢索中心資料庫,通路企業内部網,制造新的語音通路裝置。VoiceXML的執行平台上面加載了相應的軟體和硬體,例如,ASR、TTS,進而實作語音的識别以及文本和語音之間的轉化。2000年5月23日,W3C接受了語音可擴充标記語言VoiceXML 1.0作為執行個體。

目前,IBM、Nokia、Lucent、Motorola等著名廠商都已經開發出相應支援VoiceXML的産品,但現在的ASR和TTS系統大多還不能支援中文。

上一篇: 郵件服務

繼續閱讀