CGI的那点事
CGI代表Common Gateway Interface(通用網(wǎng)關(guān)界面),它使在網(wǎng)絡(luò)服務(wù)器下運(yùn)行外部分應(yīng)用程序(或網(wǎng)關(guān))成為可能。CGI-BIN 目錄是存放CGI腳本的地方。這些腳本使WWW服務(wù)器和瀏覽器能運(yùn)行外部程序,而無(wú)需啟動(dòng)另一個(gè)原因程序。?
它是運(yùn)行在Web服務(wù)器上的一個(gè)程序,并由來(lái)自于瀏覽者的輸人觸發(fā)。CGI是在HTTP服務(wù)器下運(yùn)行外部程序(或網(wǎng)關(guān))的一個(gè)接口,它能讓網(wǎng)絡(luò)用戶訪問(wèn)遠(yuǎn)程系統(tǒng)上的使用類型程序,就好像他們?cè)趯?shí)際使用那些遠(yuǎn)程計(jì)算機(jī)一樣。?
CGI能夠讓瀏覽者與服務(wù)器進(jìn)行交互,如果你曾經(jīng)遇到過(guò)在網(wǎng)絡(luò)上填表或者進(jìn)行搜索,就很有可能就是用的CGI。?盡管CGI易于使用,但是當(dāng)大批人同時(shí)使用一個(gè)CGI應(yīng)用程序是會(huì)反應(yīng)較慢,網(wǎng)絡(luò)服務(wù)器 速度也會(huì)受到很大 影響。CGI應(yīng)用程序的優(yōu)點(diǎn)是可以獨(dú)立運(yùn)行。?
CGI應(yīng)用程序可以由大多數(shù)的編程語(yǔ)言編寫,如Perl(Practical Extraction and Report Language)、C\C++、Java 和Visual Basic等。不過(guò)對(duì)于那些沒(méi)有太多編程經(jīng)驗(yàn)的網(wǎng)頁(yè)制作人來(lái)說(shuō),實(shí)在是一個(gè)不小的難題。?
CGI應(yīng)用程序的工作原理是這樣的:?
1.瀏覽器通過(guò)HTML表單或超鏈接請(qǐng)求指上一個(gè)CGI應(yīng)用程序的URL。?
2.服務(wù)器收發(fā)到請(qǐng)求。?
3.服務(wù)器執(zhí)行指定所CGI應(yīng)用程序。?
4.CGI應(yīng)用程序執(zhí)行所需要的操作,通常是基于瀏覽者輸人的內(nèi)容。?
5.CGI應(yīng)用程序把結(jié)果格式化為網(wǎng)絡(luò)服務(wù)器和瀏覽器能夠理解的文檔(通常是HTML網(wǎng)頁(yè))。?
6.網(wǎng)絡(luò)服務(wù)器把結(jié)果返回到瀏覽器中。?
有關(guān)CGI應(yīng)用程序要注意的是:?
CGI應(yīng)用程序運(yùn)行在瀏覽器可以請(qǐng)求的服務(wù)器系統(tǒng)上,執(zhí)行時(shí)需要使用服務(wù)器CPU時(shí)間和內(nèi)存。如果有成千上萬(wàn)的這種程序會(huì)同時(shí)運(yùn)行,那會(huì)對(duì)服務(wù)器系統(tǒng)提出極高的要求。你要慎重考慮這個(gè)問(wèn)題,以防止服務(wù)器系統(tǒng)崩潰。?不完善的CGI應(yīng)用程序可能成為別人非法進(jìn)人服務(wù)器系統(tǒng)的通道,有可能導(dǎo)致重要的資料被刪除或外泄。?
CGI應(yīng)用程序主要的用途有以下幾種:?
根據(jù)瀏覽者填寫的HTML表單發(fā)送定制的答復(fù)。?
創(chuàng)建可單擊的圖像縮小圖。?
創(chuàng)建一個(gè)瀏覽者可以搜索內(nèi)容的數(shù)據(jù)庫(kù)。?
提供服務(wù)器與數(shù)據(jù)庫(kù)的接口,并把結(jié)果轉(zhuǎn)換成HTML文檔。?
制作動(dòng)態(tài)HTML文擋。?
如果一個(gè)CGI腳本可以在每臺(tái)計(jì)算機(jī)上做同樣的事情;編寫腳本就會(huì)變的很容易。不幸的是,CGI腳本依賴于服務(wù)器的操作系統(tǒng),因此,對(duì)于非UNIX服務(wù)器來(lái)說(shuō),Prl(UNIX下編寫腳本的一個(gè)常用工具)腳本毫無(wú)用處。所以,你必須定制安裝你的CGI腳本。?
大多數(shù)服務(wù)器都提供CGI-BIN目錄,但是這還不夠。因?yàn)槟銘?yīng)該擁有自己的CGI-BIN。這樣,你就能運(yùn)行自己的腳本(而不是讓自己的系統(tǒng)去適應(yīng)已存在于系統(tǒng)上的腳本)。因此,你的提供商應(yīng)安裝CGI-BIN,且能夠幫助你編寫腳本?
總結(jié)
- 上一篇: Extjs 4.0.7 中模式窗口的CU
- 下一篇: 用户接口(User exit)