麻辣家族討論版版's Archiver

小誌 發表於 2010-5-10 03:15

(ASP教學第2篇)ASP與CGI

[color=Blue]只要是在網站伺服器(Web Server)端執行執行的程式都是『CGI』程式[/color], CGI (Common Gateway Interface),中文名稱為『共通閘道介面』,為一種標準程式執行介面,主要在於能讓你的網頁跟網站伺服器(Web Server)溝通,達到跟使用者互動的效果。透過CGI程式,可以讓我們動態的產生網頁,即時展示網站伺服器(Web Server)上最新的資料。當我們連結到一個CGI物件時(非網頁,而是一個在網路伺服器端執行的程式),我們所取回的文件並非是一份靜態資料,而是一個藉由程式動態產生的HTML資料(取回的資料只是程式執行後的結果)。傳回來的資料會針對使用者的特殊查詢或要求而有不同的內容,例如:股票行情或成交量等等。

[color=Red]請注意:[/color]『CGI』 與 『CGI程式』是完全兩碼子的事!『CGI』為一種標準程式執行介面,而『CGI程式』是泛指在網站伺服器(Web Server)端執行的程式!

[color=DarkOrange][size=5][b]CGI 程式的工作方式[/b][/size][/color]
CGI 程式的工作方式乃是由客戶端(Client)的瀏覽器送出工作指令,再以CGI 介面傳送給網站伺服器(Web Server)端,網站伺服器(Web Server)端解譯由客戶端(Client)的瀏覽器送出的工作指令後,就會啟動位於網站伺服器(Web Server)端中相對應的 CGI 程式。
[attach]181[/attach]
CGI程式接收到客戶端(Client)的瀏覽器送出的工作指令後,經過一番處理,然後會將標準輸出(執行結果)傳送給『共通閘道介面』,再經由『共通閘道介面』交給客戶端(client)的瀏覽器秀出來。

[color=Green][size=4][b]如何撰寫CGI程式?[/b][/size][/color]
CGI程式可以用任何程式語言來撰寫,只要該語言具有讀寫檔案的能力且該資料檔可被存取即可。一般來說,『Perl』程式語言是最常被用來撰寫CGI程式的程式語言,當然我們也可以使用其他程式語言來撰寫,同時,只要網站伺服器(Web Server)有提供CGI 介面即可執行我們所撰寫出來的 CGI 程式。

[color=DarkOrange][size=5][b]ASP程式與CGI程式[/b][/size][/color]
ASP程式也是一種CGI程式,不要忘了:只要是在網站伺服器(Web Server)端執行執行的程式都是『CGI』程式,ASP 程式就是在網站伺服器(Web Server)端執行,所以,ASP 程式就是一種 CGI 程式,正確的說法是:CGI 程式的改良版就是 ASP 程式。
[color=Green][size=4][b]傳統CGI程式的缺點[/b][/size][/color]
[list]
[*]網站伺服器(Web Server)提供的CGI 介面不同時,CGI 程式可能就無法執行了。
[*]雖然CGI程式可以用任何具有讀寫檔案能力的程式語言來撰寫,但是,目前國內ISP大多只允許執行以『Perl』語言所撰寫出來的 CGI 程式!所以我們無法以自己熟悉的程式許言來撰寫 CGI 程式。
[*]執行CGI程式須經系統管理者開放設定,傳統CGI程式牽涉到系統設定問題,所以除非你自己就是系統管理者,否則一般使用者是沒有權力執行自己寫的CGI程式的。
[*]撰寫資料庫存取程式不易,由於一般用來撰寫CGI程式的語言只單純的具有讀寫『檔案』能力,也就是說這些『檔案』幾乎都是沒有格式的存文字檔,若要讀寫具有格式的資料庫檔案,則必須另外尋找資料庫的程式庫。
[/list]

[color=Green][size=4][b] ASP程式的優點[/b][/size][/color]
[list]
[*]將CGI執行介面物件化,利用傳統CGI程式來收集網頁中的資料時,我們必須先解析瀏覽器所傳送過來的資料(因為有些字元用做特殊用途,所以資料在傳送前會先經過標準的URL格式來編碼),也就是說我們還必須先撰寫一些資料解析的程式敘述,但是若以ASP程式來收集網頁中的資料,ASP 可以代替我們解析這些瀏覽器所傳送過來的資料,進而將這些解析過的資料轉換為物件供 Script 語言使用。
[*]通吃ActiveX 物件,雖然ASP提供了五種方便且能力強大的內建物件:Request、Response、Server、Application以及Session,但是Windows 系統中所有的 ActiveX 物件 ASP 也都可以取用,例如:存取資料最重要的物件『ADO』。
[/list]

小誌 發表於 2010-5-10 03:21

[color=DarkOrange][size=5][b]何謂ASP[/b][/size][/color]
[color=Green][size=4][b]ASP (Active Server Page)[/b][/size][/color]
ASP是一種HTML、Script、CGI的結合體。 但是ASP並不適用於單機PC之上,在單機上要開啟ASP網頁是必須透過PWS(或IIS)來模擬網路伺服器才能夠執行的,換言之,當你完成一張ASP網頁的編輯後,並不能在單機PC上使用瀏覽器來開啟這已經完成編輯的ASP網頁,因為ASP網頁是必須動態執行的,瀏覽器只能用來『瀏覽』ASP網頁並不具有『開啟』ASP網頁的能力,以一個ASP瀏覽人數計數器為例:
透過IIS模擬網路伺服器並以瀏覽器開啟後所得的畫面:
[attach]182[/attach]
在上圖中,我們可以很清楚的看到ASP網頁執行後的畫面,同時在瀏覽器狀態列右方的欄位中顯示著『近端 intranet』,這表示我們正透過IIS機制將單機模擬成網路伺服器開啟ASP網頁,同時透過瀏覽器瀏覽網頁執行後的結果!
如果我們未使用IIS機制模擬網路伺服器來開啟ASP網頁,則將獲得如下畫面:
[attach]183[/attach]

[color=Green][b][size=4] HTML (HyperText Markup Language) [/size][/b][/color]
超文件標記語言:網頁文件透過此種語言格式即可在網際網路上瀏覽,使用者只要用瀏覽器 (IE、Netscape或其他)就可檢視這些網頁文件。 HTML 是構成網頁最基礎的骨幹,可是我不懂HTML語言耶!沒關係!現在有很多網頁編輯工具都可以讓你在不懂HTML語言的情況下輕易的製作出內容豐富的網頁,例如:DreamWeaver 或 FrontPage 等等。

[color=Green][size=4][b] Script (文稿) [/b][/size][/color]
是由一群可以在網頁伺服器(Server)或客戶端(Client)瀏覽器執行的指令所組合而成,例如VBScript或JavaScript。 VBScript 與 JavaScript 都是所謂的:網頁應用程式語言,但是這些由JavaScript 或 VBScript 所完成的網頁程式並不需要透過模擬網路伺服器的機制來開啟,因為瀏覽器本身就具有執行這些網頁應用程式的能力。透過JavaScript 或VBScript 與基礎的HTML文件相結合即可創造出所謂的『動態網頁(DHTNL)』。

  [b][color=Green][size=4]CGI (Common Gateway Interface)[/size][/color][/b]
共通閘道介面:指的是瀏覽器與WWW伺服器之間交互作用的機制,CGI並不是程式而是指傳輸的介面,因為 CGI和伺服器端的程式息息相關, 故將兩者合稱為 (CGI程式),ASP即為NT作業平台之IIS伺服端的程式。

頁: [1]

麻辣家族討論版版為 麻辣學園 網站成員  由 昱得資訊工作室 © Since 1993 所提供