動態網頁

動態網頁

所謂的動態網頁,是指跟靜態網頁相對的一種網頁編程技術。靜態網頁,隨著html代碼的生成,頁面的內容和顯示效果就基本上不會發生變化了——除非修改頁面代碼。而動態網頁則不然,頁面代碼雖然沒有變,但是顯示的內容卻是可以隨著時間、環境或者資料庫操作的結果而發生改變的。

值得強調的是,不要將動態網頁和頁面內容是否有動感混為一談。這裡說的動態網頁,與網頁上的各種動畫、滾動字幕等視覺上的動態效果沒有直接關係,動態網頁也可以是純文字內容的,也可以是包含各種動畫的內容,這些只是網頁具體內容的表現形式,無論網頁是否具有動態效果,只要是採用了動態網站技術生成的網頁都可以稱為動態網頁。

總之,動態網頁是基本的html語法規範與Java、VB、VC等高級程序設計語言、資料庫編程等多種技術的融合,以期實現對網站內容和風格的高效、動態和互動式的管理。因此,從這個意義上來講,凡是結合了HTML以外的高級程序設計語言和資料庫技術進行的網頁編程技術生成的網頁都是動態網頁。

簡介


從網站瀏覽者的角度來看,無論是動態網頁還是靜態網頁,都可以展示基本的文字和圖片信息,但從網站開發、管理、維護的角度來看就有很大的差別。
早期的動態網頁主要採用公用網關介面CGI(CommonGatewayInterface)技術。您可以使用不同的程序編寫適合的CGI程序,如Visual Basic、Delphi或C/C++等。雖然CGI技術已經發展成熟而且功能強大,但由於編程困難、效率低下、修改複雜,所以有逐漸被新技術取代的趨勢。
與靜態網頁相對應的,能與後台資料庫進行交互,數據傳遞。也就是說,網頁 URL的後綴不是.htm、.html、.shtml、.xml等靜態網頁的常見形動態網頁製作格式,而是以.aspx、.asp、.jsp、.php、.perl、.cgi等形式為後綴,並且在動態網頁網址中有一個標誌性的符號——“?”。

特徵


簡要歸納如下:
(1)動態網頁一般以資料庫技術為基礎,可以大大降低網站維護的工作量;
(2)採用動態網頁技術的網站可以實現更多的功能,如用戶註冊、用戶登錄、在線調查、用戶管理、訂單管理等等;
(3)動態網頁實際上並不是獨立存在於伺服器上的網頁文件,只有當用戶請求時伺服器才返回一個完整的網頁;
(4)動態網頁中的“?”對搜索引擎檢索存在一定的問題,搜索引擎一般不可能從一個網站的資料庫中訪問全部網頁,或者出於技術方面的考慮,搜索之中不去抓取網址中“?”後面的內容,因此採用動態網頁的網站在進行搜索引擎推廣時需要做一定的技術處理才能適應搜索引擎的要求。

伺服器端


一個在Web(網路)伺服器上運行的程序(伺服器端腳本)是用來改變在不同的網頁之上的網頁內容,或調節序列或重新載入的網頁。伺服器響應來確定這種情況,張貼的超文本標記語言表單裡頭的數據,URL中的參數,所使用的瀏覽器類型,時間流逝,或資料庫或伺服器的狀態。
這些網頁通常都是如ASP,ColdFusion,Perl,PHP,WebDNA,或者其他的伺服器端語言。這些伺服器端語言經常使用的通用網關介面(CGI)產生動態網頁。有兩個明顯的例外是asp.net和JSP(爪哇伺服器頁面),在它們的API(程序編程介面)裡頭會重複使用CGI的概念,但實際上所有的web(網路)請求分派到壹個共享的虛擬機。動態網頁有很少或沒有預期變化時,往往會高速緩存和頁面預計會接收大量的網路流量,會營造緩慢的載入時間至伺服器。

客戶端


客戶端腳本在一個特定的網頁面改變界面以及行為或響應滑鼠或鍵盤操作,或在指定時間事件。在這種情況下,動態行為在發生時。客戶端生成的內容在用戶的本地計算機系統裡頭。
這些網頁使用的演示技術被稱為富介面頁面。客戶端腳本語言,如JavaScript(爪哇腳本)或ActionScript(動作腳本),動態HTML(DHTML)和Flash技術的使用,經常被用來編排媒體類型(聲音,動畫,修改文本等)的演示。該腳本還允許使用遠程腳本的壹種技術,DHTML頁面請求從伺服器的其他信息,使用一個隱藏的框架,XMLHttpRequest或Web(網路)服務。

常用技術


1、PHP即Hypertext Preprocessor(超文本預處理器),它是當今Internet上最為火熱的腳本語言,其語法借鑒了C、Java、PERL等語言,但只需要很少的編程知識就能使用PHP建立一個真正交互的Web站點。
它與HTML語言具有非常好的兼容性,使用者可以直接在腳本代碼中加入HTML標籤,或者在HTML標籤中加入腳本代碼從而更好地實現頁面控制。PHP提供了標準的資料庫介面,資料庫連接方便,兼容性強;擴展性強;可以進行面向對象編程。
2、ASP即Active Server Pages(活躍伺服器頁),它是微軟開發的一種類似超文本標識語言(HTML)、腳本(Script)與CGI(公用網關介面)的結合體,它沒有提供自己專門的編程語言,而是允許用戶使用許多已有的腳本語言編寫ASP的應用程序。ASP的程序編製比HTML更方便且更有靈活性。它是在Web伺服器端運行,運行后再將運行結果以HTML格式傳送至客戶端的瀏覽器。因此ASP與一般的腳本語言相比,要安全得多。
ASP的最大好處是可以包含HTML標籤,也可以直接存取資料庫及使用無限擴充的ActiveX控制項,因此在程序編製上要比HTML方便而且更富有靈活性。通過使用ASP的組件和對象技術,用戶可以直接使用ActiveX控制項,調用對象方法和屬性,以簡單的方式實現強大的交互功能。
但ASP技術也非完美無缺,由於它基本上是局限於微軟的操作系統平台之上,主要工作環境是微軟的IIS應用程序結構,又因ActiveX對象具有平台特性,所以ASP技術不能很容易地實現在跨平台Web伺服器上工作。
aspx是微軟的在伺服器端運行的動態網頁文件,通過IIS解析執行后可以得到動態頁面,是微軟推出的一種新的網路編程方法,而不是asp的簡單升級,因為它的編程方法和asp有很大的不同,他是在伺服器端靠伺服器編譯執行的程序代碼, ASP使用腳本語言,每次請求的時候,伺服器調用腳本解析引擎來解析執行其中的程序代碼,而asp.net則可以使用多種語言編寫,而且是全編譯執行的,比ASP快,而且,不僅僅是快的問題,有很多優點。
3、JSP即Java Server Pages(爪哇伺服器頁面),它是由Sun Microsystem公司於1999年6月推出的新技術,是基於Java Servlet以及整個Java(爪哇)體系的Web開發技術。
JSP和ASP在技術方面有許多相似之處,不過兩者來源於不同的技術規範組織,以至ASP一般只應用於Windows NT/2000平台,而JSP則可以在85%以上的伺服器上運行,而且基於JSP技術的應用程序比基於ASP的應用程序易於維護和管理,所以被許多人認為是未來最有發展前途的動態網站技術。
4、CGI(Common Gateway Interface,公用網關介面)是較早用來建立動態網頁的技術。當客戶端向Web伺服器上指定的CGI程序發出請求時,Web伺服器會啟動一個新的進程執行某些CGI程序,程序執行后將結果以網頁的形式再發送回客戶端。
CGI的優點是它可以用很多語言編寫,如C、C++、VB和Perl語言。在語言的選擇上有很大的靈活性。最常用的CGI開發語言為Perl。

特點


asp.net是建立在公共語言運行庫上的編程框架,可用於在伺服器上生成功能強大的Web應用程序。與以前的Web 開發模型相比,asp.net提供了數個重要的優點:
1)增強的性能。asp.net是在伺服器上運行的編譯好的公共語言運行庫代碼。與被解釋的前輩不同,asp.net可利用早期綁定、實時編譯、本機優化和盒外緩存服務。這相當於在編寫代碼行之前便顯著提高了性能。
2)世界級的工具支持。asp.net框架補充了Visual Studio集成開發環境中的大量工具箱和設計器。WYSIWYG編輯、拖放伺服器控制項和自動部署只是這個強大的工具所提供功能中的少數幾種。
3)威力和靈活性。由於asp.net基於公共語言運行庫,因此Web應用程序開發人員可以利用整個平台的威力和靈活性。.NET框架類庫、消息處理和數據訪問解決方案都可從Web無縫訪問。asp.net也與語言無關,所以可以選擇最適合應用程序的語言,或跨多種語言分割應用程序。另外,公共語言運行庫的交互性保證在遷移到asp.net時保留基於COM的開發中的現有投資。

缺點


1、首先動態網頁在訪問速度上不佔優勢
動態網頁首先獲得用戶的指令,然後網頁拿著指令到資料庫中找和指令相對應的數據,然後傳遞給伺服器,通過伺服器的編譯把動態頁面編譯成標準的HTML代碼,傳遞給用戶瀏覽器,這樣用戶就看到了網頁。問題出來了,每次訪問網頁都要經過這麼一個過程,這一過程至少需要幾秒鐘的時間,訪問的人數一多,頁面的載入速度就會變慢,對伺服器來說也是一種負擔;從用戶角度來說,網頁載入的慢,遲遲沒有反應,下次誰還會來訪問的網站。
靜態網頁就簡單了,靜態網頁是實際存在的,無需經過伺服器的編譯,直接載入到客戶瀏覽器上顯示出來。
由此可見,動態網頁在訪問速度上並不佔優勢。
2、在搜索引擎收錄方面並不佔優勢
上面從伺服器和用戶體驗的角度說了一下,下面再從搜索引擎收錄角度說一下,動態網頁是在用戶輸入指令后才形成的頁面,並不存在這個頁面,而搜索引擎只會抓取現成的,並不會自己輸入,因此網站在搜索引擎收錄方面並不佔優勢。搜索引擎還是喜歡靜態頁面。不過搜索引擎在不斷完善發展。到目前為止,絕大多數的搜索引擎都已支持動態頁面的抓取。

靜態形式


也就是以.htm、.html、.shtml、.xml等為後後綴的。在超文本標記語言格式的網頁上,也可以出現各種動態的效果,如.GIF格式的動畫、FLASH、滾動字母等,這些“動態效果”只是視覺上的,與下面將要介紹的動態網頁是不同的概念。在網站設計中,純粹超文本標記語言格式的網頁通常被稱為“靜態網頁”,早期的網站一般都是由靜態網頁製作的。
將靜態網頁的特點簡要歸納如下:
(1)靜態網頁每個網頁都有一個固定的URL,且網頁URL以.htm、.html、.shtml等常見形式為後綴,而不含有“?”;
(2)網頁內容一經發布到網站伺服器上,無論是否有用戶訪問,每個靜態網頁的內容都是保存在網站伺服器上的,也就是說,靜態網頁是實實在在保存在伺服器上的文件,每個網頁都是一個獨立的文件;
(3)靜態網頁的內容相對穩定,因此容易被搜索引擎檢索;
(4)靜態網頁沒有資料庫的支持,在網站製作和維護方面工作量較大,因此當網站信息量很大時完全依靠靜態網頁製作方式比較困難;
(5)靜態網頁的交互性較差,在功能方面有較大的限制;
(6)靜態網頁運行數據快。
靜態網頁是相對於動態網頁而言,是指沒有後台資料庫、不含程序和不可交互的網頁。編的是什麼它顯示的就是什麼、不會有任何改變。靜態網頁相對更新起來比較麻煩,適用於一般更新較少的展示型網站。

靜態動態


區分

靜態網頁,動態網頁主要根據網頁製作的語言來區分:
靜態網頁使用語言:超文本標記語言(標準通用標記語言的一個應用、外語縮寫:HTML)
動態網頁使用語言:以超文本標記語言為基礎,結合上述腳本語言來編寫

靜態動態比較

程序是否在伺服器端運行,是重要標誌。在伺服器端運行的程序、網頁、組件,屬於動態網頁,它們會隨不同客戶、不同時間,返回不同的網頁,例如PHP、JSP、ASP、net、CGI等。運行於客戶端的程序、網頁、插件、組件,屬於靜態網頁,例如html頁、Flash、JavaScript、VBScript等等,它們是永遠不變的。
靜態網頁和動態網頁各有特點,網站採用動態網頁還是靜態網頁主要取決於網站的功能需求和網站內容的多少,如果網站功能比較簡單,內容更新量不是很大,採用純靜態網頁的方式會更簡單,反之一般要採用動態網頁技術來實現。
靜態網頁是網站建設的基礎,靜態網頁和動態網頁之間也並不矛盾,為了網站適應搜索引擎檢索的需要,即使採用動態網站技術,也可以將網頁內容轉化為靜態網頁發布。
動態網站也可以採用靜動結合的原則,適合採用動態網頁的地方用動態網頁,如果必要使用靜態網頁,則可以考慮用靜態網頁的方法來實現,在同一個網站上,動態網頁內容和靜態網頁內容同時存在也是很常見的事情。

動態體系


LAMP

lamp(Linux+Apache+Mysql+PHP),一組常用來搭建動態網站或者伺服器的開源軟體,本身都是各自獨立的程序,但是因為常被放在一起使用,擁有了越來越高的兼容度,共同組成了一個強大的Web應用程序平台。
隨著開源潮流的蓬勃發展,開放源代碼的LAMP已經與J2EE和.Net商業軟體形成三足鼎立之勢,並且該軟體開發的項目在軟體方面的投資成本較低,因此受到整個IT界的關注。從網站的流量上來說,70%以上的訪問流量是LAMP來提供的,LAMP是最強大的網站解決方案。
LAMP是基於(Linux+Apache+Mysql+PHP)的開放資源網路開發平台,PHP是一種有時候用Perl或Python可代替的編程語言。這個術語來自歐洲,在那裡這些程序常用來作為一種標準開發環境。名字來源於每個程序的第一個字母。每個程序在所有權里都符合開放源代碼標準:Linux是開放系統;Apache是最通用的網路伺服器;mySQL是帶有基於網路管理附加工具的關係資料庫;PHP是流行的對象腳本語言,它包含了多數其它語言的優秀特徵來使得它的網路開發更加有效。開發者在Windows操作系統下使用這些Linux環境里的工具稱為使用WAMP,也稱為WAMP架構。
這個特定名詞最早出現在1998年。當時,Michael Kunze為德國計算機雜誌c't寫作的一篇關於自由軟體如何成為商業軟體替代品的文章時,創建了LAMP這個名詞,用來指代Linux操作系統、Apache網路伺服器、MySQL資料庫和PHP(Perl或Python)腳本語言的組合(由四種技術的開頭字母組成)。由於IT世界眾所周知的對縮寫的愛好,Kunze提出的LAMP這一術語很快就被市場接受。O'Reilly和MySQL AB更是在英語人群中推廣普及了這個術語。隨之LAMP技術成為了開源軟體業的一盞真正的明燈。事實上它正像一盞開源明燈指引著前進的方向!