摘要:本文介紹了當前創建動態Web頁的兩種主流技術:客戶端技術和服務器端技術,并簡單分析了每一種技術的主要特點。
關鍵詞:動態Web頁 客戶端技術 服務器端技術
大家知道,網頁分為靜態網頁和動態網頁兩種。靜態網頁簡單易學,顯示速度快,但是缺乏靈活性,不能適應很多場合的具體需求,所以現在最流行的是動態網頁技術。目前有兩種不同的模型可以提供動態網頁創建:客戶端技術和服務器端技術。本文將介紹的是我們所認為的這兩種模型中最重要的技術。
1 提供動態內容的客戶端技術
當用戶請求頁面時,服務器一般是把HTML代碼連同一個包含一組指令的單獨文件發送給瀏覽器,瀏覽器使用它們生成純HTML頁面——換句話說,頁面是在請求時動態生成的。
客戶端技術都依賴于一個嵌入瀏覽器的模塊(或插件程序)來處理指令,它是腳本語言、控件和發展成熟的編程語言的混合物。目前,能提供動態內容的客戶端技術主要有以下幾種:
1.1 JavaScript
JavaScript是最原始的瀏覽器腳本語言,不能與Java相混淆,它只是借用了Java的一些語法和基本結構。Netscape最初開發了一種腳本語言,即LiveScript,為他們的Web服務器和瀏覽器增添了交互性,當Netscape和Sun聯合時,他們把其名稱改為JavaScript。
JavaScript比Java更容易掌握。它可以創建小規模的、高效率的可以做很多事情的應用程序,可以執行重復的任務和處理用戶產生的事件(如鼠標單擊,鍵盤響應等)。JavaScript可以控制瀏覽器的行為,但是卻不能像Java那樣控制像文件處理、繪制圖形、執行網絡和線程等這樣的功能。事實上,JavaScript出于安全原因還會積極地阻止這類功能地實現。
Microsoft在Internet Explorer3.0中介紹了自己的JavaScript版本,即Jscript,并一直給予支持,現在它與Netscape版本的JavaScript語言只有很小的區別(但在舊的版本中,區別還是很大的)。
1.2 VBScript
在IE3.0中,Microsoft為了與JavaScript分庭抗禮,也介紹了他們自己的腳本語言,即VBScript,它是基于Visual Basic 編程語言的。就功能而言,兩者沒有太大的區別,更多的個人的偏好。Java的開發人員愿意使用JavaScript,而VB的編程人員更愿意用VBScript。VBScript還有一個吸引初級編程人員的優點是:它不像JavaScript那樣,它不區分大小寫;但是這個“優點”使得它的速度大為減慢且效率降低。
VBScript最大的缺點是,非Microsoft的瀏覽器都不支持用VBScript寫的客戶端腳本,Netscape等其它的瀏覽器只能通過專屬的插件程序來提供支持。如果要在Internet上編寫Web頁的客戶端程序,JavaScript將是唯一可以選擇的腳本語言。
1.3 ActiveX控件
ActiveX控件是個獨立的程序或組件,用C++或VB語言編寫,通過
不同于JavaScript和VBScript,ActiveX可以操作用戶機器上的項,如文件甚至注冊表,正是由于這個原因,它經常被認為存在安全隱患,甚至不允許通過防火墻。所以它仍然不能真正地作為制作動態網頁的通用的或是跨平臺的方式,也慢慢被棄用了。
1.4 Java Applets
當Java在20世紀90年代中期首次沖擊Web時,引起了巨大的沖擊波,方法是用applets表單中的Java代碼,applets表單實際上是通過
Microsoft和Netscape瀏覽器都通過Java Virtual Machine(JVM)得到了內置的Java支持,用于把Java Applets添加到Web頁中。Java applets可以很快地下載,但在瀏覽器中處理一次卻要花費很長時間。所以,雖然小型的Java applets(提供下拉菜單和動畫等功能)在Web上非常受歡迎,但大一點的仍不及腳本頁面普遍。
2 提供動態內容的服務器端技術
在服務器端模型中,HTML源代碼隨一組混合的指令發送到Web服務器中,當用戶請求頁面時,這組指令被用來動態生成HTML頁面,并把生成的HTML代碼返回給瀏覽器。因此,只有HTML和相關的客戶端腳本被Web服務器發送回瀏覽器,而不返回任何的服務器端代碼。目前,能提供動態內容的客戶端技術主要有以下幾種:
2.1 CGI
Common Gateway Interface(CGI)是一種創建服務器上的腳本的機制,可以用來創建動態Web應用程序。CGI甚至可以讓用戶在Web服務器中調用其它的程序來創建動態Web頁,然而CGI有以下嚴重的缺點:①對于初學者來說,學會編寫CGI模塊不太容易;②CGI要求更多的服務器資源,特別是在多用戶情況下;③它需要在服務器上處理頁面之前,運行CGI程序來創建動態頁面。
CGI接收和傳送數據的形式意味著它不容易編程,執行CGI操作的最適合的編程語言是C/C++,它們學習起來很復雜。Visual Basic不能提供充分的文本處理功能,因此很少被用于CGI中。
除了這些,CGI仍然為一些大的Web站點所歡迎,特別是一些運行于Unix操作系統上的Web站點。它也可以在不同的平臺上運行,這也確保了它的繼續流行。
2.2 ASP
Active Server Page(ASP)是一個連接到Web服務器的組件(asp.dll文件),它通常是依賴于JavaScript或是VBScript腳本語言來創建動態Web頁。在頁面發送給服務器之前,asp.dll組件處理Web服務器上的JavaScript和VBScript,并轉換其為HTML,而不是在瀏覽器上處理這一切。
由于只能使用腳本語言,它不能實現一個發展成熟的編程語言所能做的一切,因為腳本語言是完整的編程語言的最原始、初級的版本。而且,ASP程序執行速度很慢,并且只能在Windows系統的IIS上運行。
2.3 JSP
Java Server Page(JSP)技術允許Java代碼結合標記語言(HTML或XML)來動態生成Web頁。JSP的一個最主要的優點是不同的服務器間的代碼的可移植性。JSP也因為功能強大且速度比ASP快,允許Java編程使用Java 2 平臺的JavaBeans和Java 2庫等原因,很快為Java編程人員所青睞。
2.4 PHP
PHP(Personal Home Pages,但近來演變為PHP HyperText PreProcessor)是創建動態Web頁的另外一種技術。PHP是開放源代碼和跨平臺的,可以運行于Windows NT和許多Unix版本中。PHP4之前是不存在會話管理的,既使現在都不如ASP和JSP。
2.5 ASP.NET
ASP.NET是動態創建Web頁的另一種強大的服務器端新技術,是構成Microsoft .NET Framework的一組技術中的一種。它充分利用.NET Framework的豐富的潛能,可以使用.NET Framework支持的所有的編程語言,包括C#、Visual Basic.NET和Jscript.NET等。
由于可以使用成熟的編程語言,因此它的功能強大,是現在最流行的一種技術。
3 總結
近年來,我們已經對客戶端技術棄之不用了,因為它們的下載時間長,每個瀏覽器以不同的方式來解釋指令,無法保證IE以及Navigator和Opera等都能理解它們。由于重要的代碼(如如何使用服務器端資源等)都是在客戶端解釋的,任何人都可以使用這些客戶端腳本代碼,所以它是不安全和不受歡迎的。
服務器端技術和客戶端技術的不同就是在發送給瀏覽器之前,所有的處理過程都是在服務器上進行的,實際上發送給瀏覽器的只是用來描述已完成的頁面的HTML代碼。這意味著頁面的邏輯關系已經隱藏在服務器上,可以保證大部分瀏覽器至少能顯示它,所以漸漸成為創建動態Web頁的主流技術。
參考文獻:
[1]ASP.NET入門經典,康博譯.清華大學出版社.
[2]ASP.NET動態網站開發,郭興峰,陳建偉編著,清華大學出版社.
[3]www.itnz.com.cn.