簡介
從網站瀏覽者的角度來看,無論是動態網頁還是
靜態網頁,都可以展示基本的文字和圖片信息,但從
網站開發、管理、維護的角度來看就有很大的差別。
早期的動態網頁主要採用
公用網關接口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(網路)請求分派到壹個共享的虛擬機。動態網頁有很少或沒有預期變化時,往往會高速快取和頁面預計會接收大量的網路流量,會營造緩慢的載入時間至伺服器。
客戶端
客戶端腳本在一個特定的網頁面改變界面以及行為或回響滑鼠或鍵盤操作,或在指定時間事件。在這種情況下,動態行為在發生時。客戶端生成的內容在用戶的本地計算機系統裡頭。
常用的4種動態網頁技術
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)靜態網頁的互動性較差,在功能方面有較大的限制;
靜態網頁是相對於動態網頁而言,是指沒有
後台資料庫、不含程式和不可互動的網頁。你編的是什麼它顯示的就是什麼、不會有任何改變。靜態網頁相對更新起來比較麻煩,適用於一般更新較少的展示型網站。
靜態動態
區分
動態網頁使用語言:以超文本標記語言為基礎,結合上述腳本語言來編寫
靜態動態比較
程式是否在伺服器端運行,是重要標誌。在伺服器端運行的程式、網頁、組件,屬於動態網頁,它們會隨不同客戶、不同時間,返回不同的網頁,例如PHP、JSP、ASP、net、CGI等。運行於客戶端的程式、網頁、
外掛程式、組件,屬於
靜態網頁,例如html頁、Flash、JavaScript、VBScript等等,它們是永遠不變的。
靜態網頁和動態網頁各有特點,網站採用動態網頁還是靜態網頁主要取決於網站的功能需求和網站內容的多少,如果網站功能比較簡單,內容更新量不是很大,採用純靜態網頁的方式會更簡單,反之一般要採用
動態網頁技術來實現。
靜態網頁是網站建設的基礎,
靜態網頁和動態網頁之間也並不矛盾,為了網站適應搜尋引擎檢索的需要,即使採用
動態網站技術,也可以將網頁內容轉化為靜態網頁發布。
動態網站也可以採用靜動結合的原則,適合採用動態網頁的地方用動態網頁,如果必要使用靜態網頁,則可以考慮用靜態網頁的方法來實現,在同一個網站上,動態網頁內容和靜態網頁內容同時存在也是很常見的事情。
動態體系
LAMP
隨著開源潮流的蓬勃發展,
開放原始碼的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技術成為了開源軟體業的一盞真正的明燈。事實上它正像一盞開源明燈指引著我們前進的方向!
WAMP
微軟作業系統(Windows系列)下的Apache+Mysql+Perl/PHP/Python,一組常用來搭建
動態網站或者伺服器的開源軟體,本身都是各自獨立的程式,但是因為常被放在一起使用,擁有了越來越高的兼容度,共同組成了一個強大的Web應用程式平台。