優(yōu)惠活動(dòng) - 12周年慶本月新客福利
優(yōu)惠活動(dòng) - 12周年慶本月新客福利
優(yōu)惠活動(dòng) - 12周年慶本月新客福利

動(dòng)態(tài)網(wǎng)頁(yè)的CGI實(shí)現(xiàn)技術(shù)

較早的動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)主要采用CGI,由于CGI技術(shù)難度較大、效率不高,后來又相繼出現(xiàn)了如 ASP、PHP,JSP 等許多新的動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)。為了對(duì)這些技術(shù)的發(fā)展過程能夠有所了解,并便于進(jìn)行對(duì)比。

l.CGI的可移植性和可實(shí)現(xiàn)的功能

CGI(Common Gateway Interface,公用網(wǎng)關(guān)接口)技術(shù)是為HTML語(yǔ)言提供的一種擴(kuò)展手段,允許用戶編寫擴(kuò)展應(yīng)用程序來擴(kuò)展服務(wù)器的功能,實(shí)現(xiàn)客戶 端與服務(wù)器的交互操作。CG1程序可以在多種平臺(tái)上實(shí)現(xiàn)一定的功能,并且無需 做太大的更改,就可以輕松地完成平臺(tái)之間的移植。任何支持CGI的服務(wù)器與其他專用服務(wù)器的擴(kuò)展功能相比,主要的一個(gè)特點(diǎn)就是CGI程序的服務(wù)器可以用任何語(yǔ)言編寫,在任何平臺(tái)上開發(fā),只要它滿足CGI規(guī)范就可以。
 


由于CGI程序的大部分處理對(duì)象是字符串,所以編寫CGI程序的語(yǔ)言最好采用Perl、C/C++語(yǔ)言,其他語(yǔ)言在編寫CGI程序時(shí)都存在不足之處,主要是因?yàn)樗鼈內(nèi)狈梢造`活應(yīng)用的字符串處理函數(shù)。

HTML加上CGI可以實(shí)現(xiàn)以下www服務(wù),這些功能是HTML本身無法實(shí)現(xiàn)的:
(1)  處理客戶端提交的表單數(shù)據(jù);

(2) 創(chuàng)建Web頁(yè)面上大多數(shù)非靜態(tài)的內(nèi)容;
 
(3) 在Web頁(yè)面和文檔中增加搜索功能;

(4) 創(chuàng)建交互應(yīng)用,如聊天室、投票站、計(jì)數(shù)器等;
 
(5) 允許頁(yè)面動(dòng)態(tài)生成、生成用戶定制的頁(yè)面等。
 
2.CGI的基本原理

CGI是一種通用的接口標(biāo)準(zhǔn)。CG1程序就是符合這種通用接口標(biāo)準(zhǔn)的、運(yùn)行在Web服務(wù)器上的程序、它的工作就是控制瀏覽器的信息要求,產(chǎn)生并傳回瀏覽器所需的文件。

CGI是外部擴(kuò)展應(yīng)用程序與www服務(wù)器交互的一個(gè)標(biāo)準(zhǔn)接口。按照CGI標(biāo)準(zhǔn)編寫的外部 。
 
擴(kuò)展應(yīng)用程序可以處理客戶端(www瀏覽器)輸入的 需要協(xié)同工作的數(shù)據(jù),從而完成客戶端與服務(wù)器的交互操作。例如,可以編寫CGI外部擴(kuò)展程序來訪問外部數(shù)據(jù)庫(kù),客戶端用戶可以通過CGI外部擴(kuò)展程序和WWW服務(wù)器進(jìn)行數(shù)據(jù)查詢并得到查詢結(jié)果。

下面通過對(duì)瀏覽器提交表單數(shù)據(jù)的處理來了解以下CG1的基本原理。

(1) 當(dāng)客戶端的用戶填寫好表單后,單擊“提交”按鈕向服務(wù)器發(fā)出HTTP請(qǐng)求(稱為CGI請(qǐng)求)、實(shí)際上這里的請(qǐng)求將發(fā)往<FORM>標(biāo)記中的ACTION屬性標(biāo)識(shí)的URL。

(2) Web服務(wù)器守護(hù)進(jìn)程收到這個(gè)請(qǐng)求后,就會(huì)建立一個(gè)子進(jìn)程(稱為CGI進(jìn)程)。該CGI子進(jìn)程將CGI請(qǐng)求的有關(guān)數(shù)據(jù)設(shè)置成環(huán)境變量,在外部CGI程序與服務(wù)器之間 建立兩條數(shù)據(jù)通道(標(biāo)準(zhǔn)輸入/輸出),然后啟動(dòng)URL指定的CGI程序,并與該子進(jìn)程保持同步,以監(jiān)測(cè)CGI程序的執(zhí)行狀態(tài)。

(3) 子進(jìn)程通過標(biāo)準(zhǔn)輸出流將表單處理結(jié)果傳遞給服務(wù)器守護(hù)進(jìn)程,守護(hù)進(jìn)程再將處理結(jié)果作為應(yīng)答消息回送到客戶端并用瀏覽器顯示出來。

用最簡(jiǎn)單的話來說,CG1標(biāo)準(zhǔn)就是通過STDIN(標(biāo)準(zhǔn)輸入)或環(huán)境變量來得到服務(wù)器的輸入信息,并通過STDOUT(標(biāo)準(zhǔn)輸出)向服務(wù)器輸出信息。
 
不過,用C或Perl開發(fā)CGI程序時(shí),網(wǎng)站設(shè)計(jì)技術(shù)人員普遍感到難度大、修改復(fù)雜,效率不高。因此人們不斷開發(fā)出一些既容易學(xué)習(xí)掌握,又能實(shí)現(xiàn)Web動(dòng)態(tài)交互功能的新技術(shù),目前發(fā)展得比較成熟的新技術(shù)主要有ASP,PHP和JSP。
本文地址:http://m.cdrpkj.cn//article/2676.html
相關(guān)文章:
最新文章: