動態網頁技術

動態網頁技術

動態網頁是與靜態網頁相對應的,也就是說,網頁 URL不固定,能通過後台與用戶互動。完成用戶查詢,提交等動作。常用的語言有ASPPHP,JSP等。動態網頁技術是區別於靜態網頁技術而言的。相比與傳統的靜態網頁,動態網頁有了明顯的互動性、自動更新性,以及因時因人而變的靈活性。

基本介紹

  • 中文名:動態網頁技術
  • 也就是說:能通過後台與用戶互動
  • 常用的語言ASPPHPJSP
  • 特點:"互動性"等
特點,CGI,ASP,優點,缺點,PHP,JSP,

特點

所謂“動態”,並不是指放在網頁上的GIF圖片,動態網頁技術有以下幾個特點:
1. "互動性",即網頁會根據用戶的要求和選擇而動態改變和回響,將瀏覽器作為客戶端界面,這將是今後WEB發展的大勢所趨.
2. "自動更新",即無須手動地更新HTML文檔,便會自動生成新的頁面,可以大大節省工作量.
3. "因時因人而變",即當不同的時間,不同的人訪問同一網址時會產生不同的頁面。
除了早期的CGI外,目前主流的動態網頁技術有JSP,ASP,PHP等

CGI

在早期,動態網頁技術主要採用CGI技術,即Common Gateway Interface(公用網關接口)。在早期,你可以使用不同的程式編寫合適的CGI程式,如Visual Basic,Delphi或C/C++等。雖然CGI技術成熟而且功能強大,但由於編程困難,效率低下,修改複雜等缺陷,所以有逐漸被新技術取代的趨勢。
可以使用不同的程式編寫合適的CGI程式,如Visual Basic、Delphi或C/C++等,用戶將已經寫好的程式放在WEB伺服器的計算機上運行,再將其運行結果通過WEB伺服器傳輸到客戶端的瀏覽器上。通過CGI建立WEB頁面與腳本程式之間的聯繫,並且可以利用腳本程式來處理訪問者輸入的信息並據此作出回響。事實上,這樣的編制方式比較困難而且效率低下,因為每一次修改程式都必須重新將CGI程式編譯執行檔
最常用於編寫CGI技術的語言是Perl(Practical Extraction and Report Language,文字分析報告語言),它具有強大的字元串處理能力,特別適合用於分割處理客戶端Form提交的數據串;用它來編寫的程式後綴為.pl。

ASP

ASP為動態伺服器網頁(ActiveServer Page)的簡稱。隨著Web技術的迅速發展,動態和個性化網頁的比重日益增加,而傳統快取一般只適用於靜態內容,難以減少獲取動態網頁所需的流量和延時代價。ASP更精確的說是一個中間件,這箇中間件將Web上的請求轉入到一個解釋器中,在這個解釋器中將所有的ASP的Script進行分析,再進行執行,而這時可以在這箇中間件中去創建一個新的COM對象,對這個對象中的屬性和方法進行操作和調用,同時再通過這些COM組件再完成更多的工作。所以說,ASP強大的不在於它的VBScript, 而在於它後台的COM組件,這些組件無限的擴充了ASP的能力。

優點

1、簡單易學。Basic有誰不會?很少會有人舉手,所以有人在說這個開發基礎是最廣的。而且MS有一向做的非常好的在線上手冊,本地化語言的幫助,同時非常快的出現教學書籍,這樣會大大方便開發人員的學習和對技術的深入研究。
2、安裝使用方便。只要安裝了IIS,則ASP就可以使用了,不需要複雜配置的。
3、開發工具強大而多樣。這一點已經被許多程式設計師所津津樂道。易用、簡單、人性化。
4、效率高。在低的訪問量下,ASP能體現出一定的效率,這時它對機器的要求並不高。

缺點

1、Windows本身的所有問題都會一成不變的也累加到了它的身上。安全性、穩定性、跨平台性都會因為與NT的捆綁而顯現出來。
2、ASP由於使用了COM組件所以它會變的十分強大,但是這樣的強大由於Windows NT系統最初的設計問題而會引發大量的安全問題。只要在這樣的組件或是操作中一不注意,那么外部攻擊就可以取得相當高的許可權而導致網站癱瘓或者數據丟失。
3、由於ASP還是一種Script語言,所以除了大量使用組件外,沒有辦法提高其工作效率。它必須面對即時編譯的時間考驗,同時還不知其背後的組件會是一個什麼樣的狀況。
4、無法實現跨作業系統的套用。當然這也是微軟的理由之一,只有這樣才能發揮ASP最佳的能力。可是我卻認為正是Windows限制了ASP,ASP的概念本就是為一個能讓系統運行於一個大的多樣化環境而設計的。
5、還無法完全實現一些企業級的功能:完全的集群、負載均衡。

PHP

PHP(Hypertext Preprocessor)是一種HTML內嵌式的語言(類似於IIS上的ASP)。而PHP獨特的語法混合了C、Java、Perl以及PHP式的新語法。它可以比CGI或者Perl更快速的執行動態網頁。PHP是一種伺服器端的HTML腳本/程式語言,語法上與C相似,可運行在Apache,Netscape/iPlanet和MicrosoftIIS Web等伺服器上。
PHP能夠支持諸多資料庫,如MS SQL Server, MySql,Sybase,Oracle等。
它與HTML語言具有非常好的兼容性,使用者可以直接在腳本代碼中加入HTML標籤,或者在HTML標籤中加入腳本代碼從而更好地實現頁面控制。PHP提供了標準的資料庫接口,資料庫連線方便,兼容性強;擴展性強;可以進行面向對象編程。
優點
1.一種能快速學習、跨平台、有良好資料庫互動能力的開發語言。ASP比不上它的就是這種跨平台能力了,而正是它的這種能力讓Unix/Linux有了一種與ASP媲美的開發語言。語法簡單、書寫容易、市面上也有了大量的書,同時Internet上也有大量的代碼可以共享,對於一個初學者想學些“高深的Unix”下的開發來說是一個決好的入手點。
2.與Apache及其它擴展庫結合緊密。php與Apache可以以靜態編繹的方式結合起來,而與其它的擴展庫也可以用這樣的方式結合(除外的就是Windows平台了)。這樣的方式的最大的好處就是最大化的利用了cpu時和記憶體,同時極為有效的利用了apache的高性能的吞吐能力。同時外部的擴展也是靜態連編,從而達到了最快的運行速度。由於與資料庫的接口也使用了這樣的方式,所以使用的是本地化的調用,這也讓資料庫發揮了最佳效能。
3.良好的安全性。由於php本身的代碼開放所以它的代碼在許多工程師手中進行了檢測,同時它與apache編繹在一起的方式也可以讓它具有靈活的安全設定。所以php具有了公認的安全性能。
缺點
1. 資料庫支持的極大變化。由於php的所有的擴展接口都是獨立團隊開發完成的,同時在開發時為了形成相應數據的個性化操作,所以php雖然支持許多資料庫,可是針對每種資料庫的開發語言都完全不同。這樣形成針對一種資料庫的工發工作,在資料庫進行升級後需要開發人員進行幾乎全部的代碼更改工作。而為了讓套用支持更多種的資料庫,就需要開發人員將同樣的資料庫操作使用不同的代碼寫出n種代碼庫出來,讓程式設計師的工作量大大增大。
2. 安裝複雜。由於php的每一種擴充模組並不是完全由php本身來完成,需要許多外部的套用庫,如圖形需要gd庫、LDAP需要LDAP庫.……這樣在安裝完成相應的套用後,再聯編進php中來。這也就是我以前在代碼聯盟新聞組中對網友所說的一定要在FreeBSD/Linux/Unix下運行php的原因。只有在這些環境下才能方便的編繹對應的擴展庫。這些都是一般開發人員在使用php前所先要面對的問題,正是這樣的問題讓許多開發人員轉而使用其它的開發語言,畢竟Unix沒有那么多的用戶。
3. 缺少企業級的支持。沒有組件的支持,那么所有的擴充就只能依靠php開發組所給出的接口,事實上這樣的接口還不夠多。同時難以將集群、套用伺服器這樣的特性加入到系統中去。而一個大型的站點或是一個企業級的套用一定需要這樣的支持的。

JSP

動態網頁設計中選擇合理的數據傳遞方式是非常重要的。JSP網頁間的數據傳遞有許多種不同的方法,而當頁面之間需要傳遞的數據的數據量不確定時,通常的方法難以實現。
JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。伺服器在頁面被客戶端請求以後對這些Java代碼進行處理,然後將生成的HTML頁面返回給客戶端的瀏覽器。Java Servlet 是JSP的技術基礎,而且大型的Web應用程式的開發需要Java Servlet和JSP配合才能完成。JSP具備了Java技術的簡單易用,完全的面向對象,具有平台無關性且安全可靠,主要面向Internet的所有特點。
優點
1、一次編寫,到處運行。在這一點上Java比PHP更出色,除了系統之外,代碼不用做任何更改。
2、系統的多平台支持。基本上可以在所有平台上的任意環境中開發,在任意環境中進行系統部署,在任意環境中擴展。相比ASP/PHP的局限性是現而易見的。
3、強大的可伸縮性。從只有一個小的Jar檔案就可以運行Servlet/JSP,到由多台伺服器進行集群和負載均衡,到多台Application進行事務處理,訊息處理,一台伺服器到無數台伺服器,Java顯示了一個巨大的生命力。
4、多樣化和功能強大的開發工具支持。這一點與ASP很像,Java已經有了許多非常優秀的開發工具,而且許多可以免費得到,並且其中許多已經可以順利的運行於多種平台之下。
缺點
1、與ASP一樣,Java的一些優勢正是它致命的問題所在。正是由於為了跨平台的功能,為了極度的伸縮能力,所以極大的增加了產品的複雜性。
2、Java的運行速度是用class常駐記憶體來完成的,所以它在一些情況下所使用的記憶體比起用戶數量來說確實是“最低性能價格比”了。從另一方面,它還需要硬碟空間來儲存一系列的.java檔案和.class檔案,以及對應的版本檔案。

相關詞條

熱門詞條

聯絡我們