動態網頁
出自 MBA智库百科(https://wiki.mbalib.com/)
目錄 |
所謂的動態網頁,是指跟靜態網頁相對的一種網頁編程技術。靜態網頁,隨著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等形式為尾碼,並且在動態網頁網址中有一個標誌性的符號--"?"。動態網頁可以用visual studio2008等來實現。
(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伺服器上工作。
3、JSP 即Java Server Pages(爪哇伺服器頁面),它是由Sun Microsystem公司於1999年6月推出的新技術,是基於Java Servlet以及整個Java(爪哇)體系的Web開發技術。
JSP和ASP在技術方面有許多相似之處,不過兩者來源於不同的技術規範組織,以至 ASP一般只應用於Windows NT/2000平臺,而JSP則可以在85%以上的伺服器上運行,而且基於JSP技術的應用程式比基於ASP的應用程式易於維護和管理,所以被許多人認為是未來最有發展前途的動態網站技術。
4、aspx是微軟的在伺服器端運行的動態網頁文件,通過IIS解析執行後可以得到動態頁面,是微軟推出的一種新的網路編程方法,而不是asp的簡單升級,因為它的編程方法和asp有很大的不同,他是在伺服器端靠伺服器編譯執行的程式代碼, ASP 使用腳本語言,每次請求的時候,伺服器調用腳本解析引擎來解析執行其中的程式代碼,而asp.net 則可以使用多種語言編寫,而且是全編譯執行的,比ASP 快,而且,不僅僅是快的問題,有很多優點。
1、首先動態網頁在訪問速度上不占優勢
動態網頁首先獲得用戶的指令,然後網頁拿著指令到資料庫中找和指令相對應的數據,然後傳遞給伺服器,通過伺服器的編譯把動態頁面編譯成標準的HTML代碼,傳遞給用戶瀏覽器,這樣用戶就看到了網頁。問題出來了,每次訪問網頁都要經過這麼一個過程,這一過程至少需要幾秒鐘的時間,訪問的人數一多,頁面的載入速度就會變慢,對伺服器來說也是一種負擔;從用戶角度來說,網頁載入的慢,遲遲沒有反應,下次誰還會來訪問你的網站。
而靜態網頁就簡單了,靜態網頁是實際存在的,無需經過伺服器的編譯,直接載入到客戶瀏覽器上顯示出來。
由此可見,動態網頁在訪問速度上並不占優勢。
2、在搜索引擎收錄方面並不占優勢
上面從伺服器和用戶體驗的角度說了一下,下麵再從搜索引擎收錄角度說一下,動態網頁是在用戶輸入指令後才形成的頁面,並不存在這個頁面,而搜索引擎只會抓取現成的,並不會自己輸入,因此網站在搜索引擎收錄方面並不占優勢。搜索引擎還是喜歡靜態頁面。 不過搜索引擎在不斷完善發展。到目前為止,絕大多數的搜索引擎都已支持動態頁面的抓取。
靜態網頁,動態網頁主要根據網頁製作的語言來區分:
靜態網頁使用語言:超文本標記語言(標準通用標記語言的一個應用、外語縮寫:HTML)
動態網頁使用語言:以超文本標記語言為基礎,結合上述腳本語言來編寫
動態比較
程式是否在伺服器端運行,是重要標誌。在伺服器端運行的程式、網頁、組件,屬於動態網頁,它們會隨不同客戶、不同時間,返回不同的網頁,例如ASP、PHP、JSP、ASP、net、CGI等。運行於客戶端的程式、網頁、插件、組件,屬於靜態網頁,例如html頁、Flash、JavaScript、VBScript等等,它們是永遠不變的。
靜態網頁和動態網頁各有特點,網站採用動態網頁還是靜態網頁主要取決於網站的功能需求和網站內容的多少,如果網站功能比較簡單,內容更新量不是很大,採用純靜態網頁的方式會更簡單,反之一般要採用動態網頁技術來實現。
靜態網頁是網站建設的基礎,靜態網頁和動態網頁之間也並不矛盾,為了網站適應搜索引擎檢索的需要,即使採用動態網站技術,也可以將網頁內容轉化為靜態網頁發佈。
動態網站也可以採用靜動結合的原則,適合採用動態網頁的地方用動態網頁,如果必要使用靜態網頁,則可以考慮用靜態網頁的方法來實現,在同一個網站上,動態網頁內容和靜態網頁內容同時存在也是很常見的事情。
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更是在英語人群中推廣普及了這個術語。
微軟操作系統(Windows系列)下的Apache+Mysql+Perl/PHP/Python,一組常用來搭建動態網站或者伺服器的開源軟體,本身都是各自獨立的程式,但是因為常被放在一起使用,擁有了越來越高的兼容度,共同組成了一個強大的Web應用程式平臺。