2009年8月24日星期一

Web design後端技術探討

【前言 】網頁給大家的概念也許是HTML組成的(詳看HTML簡介),也許有些人也知道了JavaScript的意義,但是要讓網頁弄得更好,我們需要一種讓網頁動起來的技術,這種技術,正是基於Web舞台的後端技術。【網際網路及後端技術 】Internet的意義是「網際網路」,源起於1960-1970。起初,美國政府希望內部的電腦能夠作資料的交換,便有一個名為ARPA。這個計劃便是Internet的源起。這種技術由美國不斷伸展,直到全世界。可惜這種技術只能夠在網路上傳送文字,於是,基於Internet的WWW(World Wide Web,全球資訊網)技術被研發出來了,網路便是由此而變得生動有趣。網頁便是在這個網路上的媒體,主要由文字及圖片組成。而未來,GGG(Great Global Grid)將會取代WWW。它的運作比WWW更快,採用的技術截然不同,當然,這個暫時不提,因為暫未普遍。後端技術可以說是一個Web介面的後端應用程式,使用者必須編寫一個程式,讓伺服器的解讀引擎執行,使它在網路上運行。HTML網頁是一個系統的操作介面,真正需要處理的東西,都透過這個介面傳輸到後端系統,它的工作便是處理這些資料,當然如何處理是系統編寫人員所控制的。【客戶端及伺服器端 】要明白「後端系統」的概念,你必須先明白「客戶端」(Client)和「伺服器端」(Server)。客戶端是要看網頁的人透瀏覽器發出的資料,即是說,你的電腦接上網路後便是客戶端。而伺服器端則是處理客戶端送出資料的一台電腦。處理資料的過程,如下所示:客戶端──────────→伺服器    我要看網頁!    │              │沒問題,處理中客戶端───────────┘這網頁真美。【後端技術及客戶端技術的分別 】所謂的JavaScript、VBScript,是由一個使用者寫了程式,在由瀏覽器「翻譯」成電腦看得懂的東西,變成大家看到的效果。由於在客戶端「翻譯」,所以原始碼會全部送到客戶端。這就好比拉麵師傅在你面前表演廚藝,你把他的動作看得一清二楚,你最後能享受到美味的拉麵。而後端技術如ASP(Active Server Page)、PHP(PHP: Hypertext Preprocessor)等,這個「翻譯」的過程,是在伺服端進行的,在伺服器那裏有一個「翻譯員」(解釋引擎),他先解讀並且執行命令,再把結果送回客戶端。這就好比媽媽在廚房裏弄晚餐,你完全看不到她在弄什麼,但你最後能享受到美味的晚飯一樣。JavaScript、VBScript等運作如下所示:伺服器──────→客戶端    傳送網頁  │          │瀏覽器:讓我來解讀吧。          └─────────────客戶端:使用者看到網頁。ASP、PHP等運作則如下所示:伺服器─────────────→客戶端    這些東西瀏覽器看不懂的, │    我先來翻譯及執行吧。   │沒有看不懂的啊! 



                └──────────客戶端:使用者看到網頁。當然一個網頁也可以同時擁有兩種技術,只是雙方不能交流而已。伺服器────────→客戶端    解釋後端語言, │還有前端程式要解譯,    都翻譯好了   │翻譯的給我滾出來!            └────────────客戶端:使用者看到網頁。接上文,由於兩者使用不同的技術,「翻譯員」也是不同的人(一個是Server、一個在Client),它們並不能溝通,因此無法作訊息交流。【後端語言 】  後端程式語言種類明顯比前端程式為多。在此我就ASP/ASP.net、CGI、PHP、JSP及Cold Fusion逐一作特式及語法介紹。  ASP可使用Jscript、VBScript及PerlScript的語法,加上內建的五大物件來進行伺服器端的程式處理,目前推出了三個主要的版本,它採用直譯的方式執行。ASP.net則是較遲推出,可使用VB.net、C#.net及J#.NET的語法。它們都是Microsoft推出的產品,因此必須在微軟視窗作業系統加上Internet Information Services(IIS)的直譯器才能運行,ASP.net則還要加上.net Framework這個編譯器方可運行。ASP的運作速度稍慢,但語法比較簡單;而ASP.net則在效能方面有所提升,因為它採用編譯方式執行,可惜語法繁複,對初學者有一定的難度。微軟視窗及IIS一直是發現漏洞比較多的產品,IIS更有三個著名的漏洞──Unicode、ISAPI及MDAC/RDS。因此,後端程式採用ASP/ASP.net有一定的危險性。  CGI是眾多後端程式語言中歷史最為悠久,執行速度最慢,編寫也頗為不方便。一個比較著名的CGI程式編寫語言是Perl,但我認為它的語法頗為繁複。PHP是一個很接近C的網頁後端語言,由於它擁有強大的函式庫,加上解讀引擎更新頻密,因此有很多的使用者。PHP則是使用編譯的。PHP的漏洞雖然也不比IIS少,但是被發現漏洞較少,而且更新時間頻密,相信一個漏洞剛發現,官方便已有更新。JSP採用Java的語法,由於較為複雜,因此使用者比較少。JSP是採用編譯的,效能比ASP好。Cold Fusion則是由一個一個的、類似HTML的標籤組成,非常簡單易用,但目前仍不太普及。