伺服器端动态网页技术_第1页
伺服器端动态网页技术_第2页
伺服器端动态网页技术_第3页
伺服器端动态网页技术_第4页
伺服器端动态网页技术_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本章提要1-1WWW與HTTP協定1-2靜態網頁與動態網頁技術1-3.NET的基礎知識1-4VisualStudio2005與VWD開發工具1-1WWW與HTTP協定Internet已經成為人類生活與工作不可或缺的工具,而WWW(WorldWideWeb)可說是促成Internet大流行的殺手級技術,目前WWW仍然是Internet上最常被使用的服務,WWW網站所產生的各式應用,例如論壇、Blog、線上購物...等,可說是目不暇給。WWW與HTTP協定WWW是一種主從式的架構,由用戶端(瀏覽器)主動提出服務要求,伺服器收到要求之後,才將資料回應給用戶端:WWW與HTTP協定WWW伺服器與用戶端之間使用HTTP(HyperTextTransferProtocol)協定進行連線與傳送資料,HTTP是一種跨平台的通訊協定,它定義了伺服器與用戶端之間資料傳輸方式。1-2靜態網頁與動態網頁技術網頁的資料內容與顯示方式WWW網頁技術的演變動態網頁技術用戶端動態網頁技術伺服器端動態網頁技術網頁的資料內容與顯示方式當我們瀏覽WWW網站時,伺服器傳送給用戶端的網頁是由HTML所構成,HTML語法定義了很多文字與排版的效果,而瀏覽器則會解析這些語法,將文字與效果顯示於用戶端:網頁的資料內容與顯示方式網頁的資料內容與顯示方式單純的文字資料展示自然無法充分滿足需求,所以HTML便定義了更多的標籤以豐富網頁內容(例如加入圖形、聲音等),只要用戶端的瀏覽器支援這些技術,能夠解讀出正確的展示方式,便可呈現出多采多姿的資料。簡單的說,純文字格式的網頁是以HTML語法來定義網頁中的內容及所要使用的物件,而瀏覽器收到之後,會進行解析,然後依照HTML所定義的效果,將內容展示出來。網頁的資料內容與顯示方式網頁的資料內容與顯示方式因此我們所看到的各種效果文字、圖片或多媒體資料,其實都是由瀏覽器所產生或顯示,伺服器只負責提供文字、檔案和檔案位置等資訊。WWW網頁技術的演變從WWW的誕生到今日的蓬勃發展,WWW網頁技術主要分成下面2種方式:靜態網頁:固定內容,單純文字的資料顯示,或是包含圖片、聲音、動畫...等多媒體效果。動態網頁:動態、具互動性內容的WWW網頁技術。動態網頁技術瀏覽器解析網頁內的HTML語法之後,即可將豐富的多媒體效果顯示於用戶端,所以早期WWW網站的製作技術著重於如何撰寫HTML語法以展現各種效果。動態網頁技術動態網頁技術雖然WWW傳遞資料的功能仍然不變,但是隨著WWW的應用日漸廣泛,靜態的效果已無法滿足人們的需求,大家開始希望網頁的效果更豐富多樣;或是想要讓網頁依照不同狀況,顯示不同的訊息;甚至希望網站可以和使用者產生互動的效果。動態網頁技術動態網頁技術因此便陸續出現許多技術以提供動態網頁的效果,這些技術依照程式執行的位置,主要可以區分為用戶端與伺服器端等兩大類。顧名思義,用戶端技術是在用戶的瀏覽器執行程式來產生動態網頁,而伺服器端技術是由伺服器執行程式,產生不同內容的網頁,再傳送給瀏覽器顯示。動態網頁技術用戶端動態網頁技術(例如:JavaApplet、JavaScript):動態網頁技術伺服器端動態網頁技術(例如:ASP.NET、PHP、JSP):動態網頁技術一般來說,用戶端動態網頁技術因為是在瀏覽器上執行程式,所以使用者可以立即得到程式執行結果,也可減輕伺服器的負擔。不過因為整個程式需透過網路傳送到用戶端執行,為避免傳送耗時,通常程式不會設計得太大,故功能上也大多只用來顯示即時資訊、產生特效等。動態網頁技術而伺服器端動態網頁技術將程式放置於伺服器上執行,程式設計的彈性相當大,還可以搭配資料庫系統,設計出複雜的架構,例如會員機制、留言板/論壇...等。動態網頁技術雖分為兩大類,但應用時會依照各種狀況與需求互相搭配使用。動態網頁技術例如本書介紹的ASP.NET雖然屬於伺服器端動態網頁技術,但是其中有些控制項也會配合使用在用戶端執行的JavaScript。由於技術推陳出新,目前各廠商發展出許多製作動態網頁的程式語言或平台,隨後將依照這兩大分類,分別介紹常見的動態網頁技術。用戶端動態網頁技術下面是目前常見的用戶端動態網頁技術:JavaAppletJavaScriptVBScriptActionScriptAjaxJavaAppletJavaApplet是以Sun

公司設計的Java語言撰寫程式,編譯成Javabytecode之後,從伺服器送至用戶端,然後由瀏覽器外掛的JVM(JavaVirtualMachine)執行,是Java推出初期最受重視的應用。JavaScript雖然JavaScript的名字以“Java”起頭,但其實與Sun

公司的Java語言沒有關係。JavaScript是Netscape

公司所開發的直譯式Script語言,可用來控制網頁上的元件,產生各種效果。JavaScript的程式碼通常內嵌於網頁中,瀏覽器若支援JavaScript,收到網頁後便會執行網頁內的JavaScript程式;除了內嵌程式碼外,設計者也可在網頁內指定執行位於特定網址的JavaScript檔案。JavaScriptJavaScriptJavaScript廣被運用,所以幾乎各瀏覽器都可支援JavaScript,不過微軟所實作的JavaScript稱為JScript。此外,因為Netscape

公司將JavaScript提交給EcmaInternational組織制訂為統一的標準,所以亦被稱為ECMAScript。VBScriptVBScript是微軟公司開發的直譯式Script語言,全名為VisualBasicScript,可以視為VisualBasic語言的簡化版本。VBScript應用於網頁時,其功能與執行方式與JavaScript相同,但是目前只被IE瀏覽器支援,使用者較少。ActionScriptFlash是目前相當常用的動畫技術,為了讓Flash動畫具有和使用者互動的能力,Macromedia

公司特別開發出ActionScript程式語言,可以用來控制動畫播放、移動或改變動畫內的元件...等。ActionScript程式通常會包含在FlashSWF動畫內,從伺服器傳送到用戶端之後,再由瀏覽器外掛的Flash播放器內的AVM(ActionScriptVirtualMachine)執行。AjaxAjax(AsynchronousJavaScriptAndXML)並非單一程式語言,而是許多技術集合而成,其中最重要的主角為JavaScript。瀏覽器載入使用Ajax技術的網頁後,網頁內的JavaScript會以XML為資料格式,藉由HTTP連線與伺服器端以XML格式交換資料,然後將結果顯示於用戶端。Ajax一般網頁程式執行時,用戶端將資料送出後,必須等待伺服器回傳『整個』網頁的內容,所以會有明顯的重新載入網頁的動作。若使用Ajax技術,因為網頁與伺服器間只需交換必要的資料,不必重新傳送HTML、圖片...等內容,所以用戶端會感受到較為順暢的執行效率。伺服器端動態網頁技術以下為目前常見的伺服器端動態網頁技術:CGIPHPASPASP.NETJSP/JavaServletCGICGI(CommonGatewayInterface)為美國國家超級電腦應用中心(NCSA)所開發的技術,是一個讓WWW伺服器可與外部程式溝通的介面,透過其居間傳遞資料,讓用戶端與遠端伺服器主機上的程式可以互相溝通:CGI當用戶端透過網路傳送資料給伺服器時,伺服器會再將資料轉送給主機上的程式,程式進行處理後,則以相反的流程送出網頁給用戶端。因為CGI只是一種介面規格,所以只要符合該規格且可在主機使用的程式,都可以用來做為CGI程式。常被用來撰寫CGI程式的語言有C、Perl、Python等,其中Perl因具備強大的文字處理能力而最受歡迎。CGICGI是早期製作伺服器端動態網頁最常用的技術,但是因為執行效率通常比不上後起之秀的PHP、ASP...等,所以目前較少被使用。PHPPHP(PHP:HypertextPreprocessor)是一種運作於伺服器上的直譯式Script語言。其程式碼與JavaScript類似,皆須內嵌於網頁中,但不同於JavaScript需將程式碼送給瀏覽器執行,PHP則是在網頁被送出前,先被伺服器執行。PHPPHPPHP是目前開放原始碼系統中最常被使用的伺服器端動態網頁技術,許多人將Linux、Apache、MySQL、PHP的組合稱為LAMP。不過除了Linux與Apache以外,PHP也可於Windows的IIS以及其他網頁伺服器上面執行。ASPASP(ActiveServerPages)是微軟公司開發的動態網頁程式平台,此平台提供許多網頁程式設計所需的物件與控制項,設計者可以選擇各種語言(例如:VBScript、JScript、PerlScript...等直譯式Script語言)來撰寫程式,然後在程式中使用這些方便的物件與控制項來產生網頁與各種效果。ASPASP的運作方式與PHP類似,程式碼必須內嵌在網頁內,由ASP引擎執行程式並提供各種物件的支援,然後生成網頁後,才交由伺服器傳送至用戶端。ASP.NETASP.NET雖然從名稱上來看是改良自ASP,但是ASP.NET可說是完全重新打造的新產品,其建構於.NET架構上,可使用.NET所支援的語言(VisualBasic、C#...等)來開發程式,並且提供了更多物件與控制項。撰寫程式時,除了內嵌於網頁外,也可以將程式碼放置於獨立檔案。此外,ASP.NET網頁採編譯的方式,所以執行效率遠比PHP或ASP等直譯網頁程式來得快,本章隨後會再詳細說明.NET與ASP.NET的架構。JSP/JavaServletJSP(JavaServerPages)與JavaServlet是Sun

公司所開發的技術,使用Java語言撰寫網頁程式。JSP提供類似PHP的方式,可以讓程式碼內嵌於網頁中,而JavaServlet則是放置於伺服器上面的Java程式。類似瀏覽器外掛JVM之後執行JavaApplet,WWW伺服器可以加裝ServletContainer,即可執行JSP網頁或是JavaServlet程式。JSP/JavaServlet1-3.NET的基礎知識.NET架構ASP.NET的執行流程.NET架構隨著電腦日益發展,軟體的複雜度與日遽增,加上物件導向發展逐漸成熟,所以目前軟體開發已經不像從前一樣,整個軟體完全由一個人或一個團隊撰寫,而是類似硬體IC,運用現有的軟體元件或機制開發出所需的功能。.NET架構.NET便是微軟公司所發展的一種程式開發與執行的架構,在這個架構下,桌面、網頁、行動裝置...等應用程式都具有各種方便使用的元件與開發機制,可以讓程式設計者更快速地發展各種軟體。下面是.NET架構的示意圖:.NET架構.NET架構前頁圖中的第一層可以看到,目前.NET支援C++、C#、J#、VisualBasic等語言,不論以哪一種語言開發程式,都可以使用.NET內的元件與機制。而且因為各語言都使用相同的資料型別,所以彼此之間可以輕易的互相呼叫與溝通。.NET架構第二層便是前面所述的各種開發機制,例如ASP.NET便是專門用來發展網頁應用程式,WindowsForms主要針對桌面應用程式,ADO.NET則是各種資料庫的存取機制。至於第三層的.NETFramework類別庫包括了程式執行時所需的元件。而第四層的CLR提供了.NET程式執行的環境。所以第二到第四層統稱為.NETFramework,也就是.NET所有元件與開發機制的總集合。.NET程式的執行方式傳統程式可分為直譯式與編譯式的執行方式,直譯式雖然方便,但是每次執行時都必須重新轉譯,導致執行效率較差。編譯式會將程式轉譯為二進位的機器碼,執行效率較高,但是因為不同電腦的機器語言有所差異,所以程式拿到其他平台時必須重新編譯才能執行。.NET程式的執行方式為了解決上述問題,.NET採用了混合式的作法,.NET原始程式會編譯為二進位的中間碼(MSIL,MicrosoftIntermediateLanguage),然後透過CLR(CommonLanguageRuntime)執行。執行時,CLR會先從.NETFramework類別庫中載入必要的元件,將中間碼與元件結合後編譯為機器碼執行。.NET程式的執行方式.NET程式的執行方式所以在.NET下,程式執行方式與傳統的差異如下:.NET程式的執行方式從上面可以看到,.NET程式編譯為中間碼之後,在具備CLR的環境下即可執行,亦即只要移植CLR到需要的平台,.NET程式便可直接跨平台運作。突破了傳統編譯式無法跨平台的缺點,也可以避免傳統直譯式效率不彰的問題。.NET程式的執行方式雖然與傳統程式相較之下,執行.NET程式時中間多了CLR,但是.NET具有良好的快取機制,所以除了第一次執行時可能稍慢之外,其他情形下執行速度並不會受到太大的影響。.NET的優點.NET基於其架構與設計,具備了以下優點:支援多種程式語言跨平台的可能性應用程式可輕易支援.NET製作網路服務的能力支援多種程式語言.NET是一個架構,而非單一程式語言,亦即只要程式語言符合.NET架構的規範,就能夠在.NET中使用。而且因為各語言符合統一規範,所以彼此可互相呼叫與溝通。所以在.NET中,程式設計者可以自由選擇熟悉的語言進行開發,而且還可輕鬆與使用其他語言的設計者互相配合。跨平台的可能性因為使用中間碼的設計,只要移植CLR,.NET程式就可以直接在各平台執行。雖然目前微軟只有提供Windows平台的CLR,但是開放原始碼社群已經開發了Mono專案,可以在Linux系統上執行.NET程式。應用程式可輕易支援.NET應用程式只要可以整合系統上的CLR,就能使用.NET為本身程式開發額外功能。例如SQLServer2005整合了CLR之後,可以使用.NET撰寫資料庫的預存程序、自訂函數與觸發程序...等,不再受限只能使用T-SQL。製作網路服務的能力.NET以網路為其名稱,對於網路服務的製作能力自然不可缺少。在.NET中不論使用哪一種程式語言,都可以輕鬆地開發WebServices。對於已有的.NET程式,也可以很簡單地為其加上WebServices的功能。ASP.NET的執行流程ASP.NET開發網站時,可以使用任何一種.NET所支援的語言撰寫網頁程式。當用戶端連線ASP.NET網頁時,其執行的流程如下:ASP.NET的執行流程ASP.NET的執行流程當ASP.NET網頁第一次被連線時,因為需要編譯為中間碼,所以使用者可能會覺得速度稍遲緩。不過在編譯完成後,之後其他用戶端連線時,便可以直接執行,速度會立刻提升,比起直譯式的網頁程式(如ASP、PHP)快上不少。ASP.NET的執行流程因為ASP.NET架構於.NET上,所以ASP.NET程式可以使用.NETFramework類別函式庫中各式各樣方便的元件,這些元件功能強大而且使用方便。除了這些元件外,ASP.NET更提供了許多控制項與機制,包含資料驗證、帳號管理、會員資料、網站地圖...等,可以加快網站的開發速度。1-4VisualStudio2005與VWD開發工具最傳統的程式設計方式是使用文書編輯工具輸入程式原始碼,存檔後將原始碼檔交由編譯程式轉換為執行檔,然後進行測試,發現問題時則回到文書編輯工具修改原始碼,然後重新編譯、執行、測試。上面傳統的程序不可不謂繁瑣,所以為了加快開發速度,便出現了IDE(IntegratedDevelopmentEnvironment)將上面程序整合進單一軟體。VisualStudio2005與VWD開發工具而後各廠商更加入了Framework,讓許多功能都可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论