明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

CGI圖文詳細(xì)教程(1)

[摘要]CGI是一個(gè)連接外部應(yīng)用程序到信息服務(wù)器(比如HTTP或者網(wǎng)絡(luò)服務(wù)器)的標(biāo)準(zhǔn)。一個(gè)簡(jiǎn)單的HTML文檔是無(wú)交互后臺(tái)程序,它是靜態(tài)的,也就是說(shuō)它處于一個(gè)不可變的狀態(tài),即文本文件不可以變化。相反地,CGI...

CGI是一個(gè)連接外部應(yīng)用程序到信息服務(wù)器(比如HTTP或者網(wǎng)絡(luò)服務(wù)器)的標(biāo)準(zhǔn)。一個(gè)簡(jiǎn)單的HTML文檔是無(wú)交互后臺(tái)程序,它是靜態(tài)的,也就是說(shuō)它處于一個(gè)不可變的狀態(tài),即文本文件不可以變化。相反地,CGI程序是可以實(shí)時(shí)執(zhí)行地,它可以輸出動(dòng)態(tài)的信息。

舉個(gè)例子吧,如果你想把Unix數(shù)據(jù)庫(kù)”掛到”萬(wàn)維網(wǎng)上,并允許世界各地的人可以訪問(wèn)它;旧希途托枰?jiǎng)?chuàng)建一個(gè)CGI程序,它的執(zhí)行將傳遞信息給數(shù)據(jù)庫(kù)引擎,并且把解雇返回給用戶顯示出來(lái)。這是一個(gè)網(wǎng)關(guān)的例子。

數(shù)據(jù)庫(kù)例子是一個(gè)簡(jiǎn)單的思想,在實(shí)際應(yīng)用過(guò)程中更為復(fù)雜。實(shí)際上沒(méi)有什么不能掛到網(wǎng)絡(luò)上面的。但是只有一件事情你必須記。翰还苣愕腃GI程序是怎樣,一定不能花太多的時(shí)間來(lái)處理。否則,用戶就做在奔騰機(jī)前面靜靜地等著瀏覽器的顯示結(jié)果,這勢(shì)必傷透了”奔騰的心”。

下面講講CGI的特殊要求:

既然CGI程序是可執(zhí)行的,那基本上就等價(jià)于世界任何地方的人可以在你的系統(tǒng)中運(yùn)行CGI程序,所以這是一種不安全的事情。因此在使用CGI程序的時(shí)候,需要一些安全的預(yù)防措施?赡埽环N有效的方法是將CGI程序放置在一個(gè)特殊的目錄中,這樣網(wǎng)絡(luò)服務(wù)器件只是執(zhí)行CGI程序而不是將它顯示到瀏覽器中。這個(gè)特殊的目錄通常處在網(wǎng)絡(luò)管理員直接控制的目錄,這樣就可以阻止普通用戶創(chuàng)建CGI程序。仍然有其它幾種方法可以允許用戶訪問(wèn)CGI腳本,但是這需要網(wǎng)絡(luò)管理員為他進(jìn)行一些設(shè)置。在這一點(diǎn)上,你可能有與網(wǎng)絡(luò)管理員聯(lián)系以獲得訪問(wèn)CGI權(quán)限的沖動(dòng)。

如果你有一個(gè)NCSA HTTPd服務(wù)器分布的版本,你將看到一個(gè)目錄/cgi-bin。這個(gè)目錄就是上面所提的特殊目錄,它就是放置CGI程序的地方。CGI程序可以用任何的語(yǔ)言來(lái)編寫,并且可以在以下的系統(tǒng)中執(zhí)行:

C/C++

Fortran

PERL

TCL

任何的Unix shell

Visual Basic

AppleScript

采取什么的語(yǔ)言依靠你的系統(tǒng)支持什么語(yǔ)言而定的。如果你使用過(guò)一個(gè)編程語(yǔ)言如C或者Fortran,你就會(huì)知道在運(yùn)行程序之前必須對(duì)程序進(jìn)行編譯。如果你進(jìn)入這個(gè)目錄,你就會(huì)發(fā)現(xiàn)一些CGI程序的源代碼。但是如果你使用其中一種腳本語(yǔ)言,比如PERL、TCL或者Unix shell,腳本就只需要放置在/cgi-bin目錄中,因?yàn)闆](méi)有相關(guān)的源代碼。許多設(shè)計(jì)人員喜歡使用CGI腳本而不使用編程語(yǔ)言,因?yàn)槟_本比需要編譯的程序語(yǔ)言更容易調(diào)試、修改和維護(hù)。