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

2022-05-10    分類(lèi): 網(wǎng)站建設(shè)

較早的動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)主要采用CGI,由于CGI技術(shù)難度較大、效率不高,后來(lái)又相繼出現(xiàn)了如ASP、PHP,JSP等許多新的動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)。為了對(duì)這些技術(shù)的發(fā)展過(guò)程能夠有所了解,并便于進(jìn)行對(duì)比。
l.CGI的可移植性和可實(shí)現(xiàn)的功能
CGI(CommonGatewayInterface,公用網(wǎng)關(guān)接口)技術(shù)是為HTML語(yǔ)言提供的一種擴(kuò)展手段,允許用戶編寫(xiě)擴(kuò)展應(yīng)用程序來(lái)擴(kuò)展服務(wù)器的功能,實(shí)現(xiàn)客戶端與服務(wù)器的交互操作。CG1程序可以在多種平臺(tái)上實(shí)現(xiàn)一定的功能,并且無(wú)需做太大的更改,就可以輕松地完成平臺(tái)之間的移植。任何支持CGI的服務(wù)器與其他專用服務(wù)器的擴(kuò)展功能相比,主要的一個(gè)特點(diǎn)就是CGI程序的服務(wù)器可以用任何語(yǔ)言編寫(xiě),在任何平臺(tái)上開(kāi)發(fā),只要它滿足CGI規(guī)范就可以。

由于CGI程序的大部分處理對(duì)象是字符串,所以編寫(xiě)CGI程序的語(yǔ)言最好采用Perl、C/C++語(yǔ)言,其他語(yǔ)言在編寫(xiě)CGI程序時(shí)都存在不足之處,主要是因?yàn)樗鼈內(nèi)狈梢造`活應(yīng)用的字符串處理函數(shù)。
HTML加上CGI可以實(shí)現(xiàn)以下www服務(wù),這些功能是HTML本身無(wú)法實(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)編寫(xiě)的外部 。
擴(kuò)展應(yīng)用程序可以處理客戶端(www瀏覽器)輸入的需要協(xié)同工作的數(shù)據(jù),從而完成客戶端與服務(wù)器的交互操作。例如,可以編寫(xiě)CGI外部擴(kuò)展程序來(lái)訪問(wèn)外部數(shù)據(jù)庫(kù),客戶端用戶可以通過(guò)CGI外部擴(kuò)展程序和WWW服務(wù)器進(jìn)行數(shù)據(jù)查詢并得到查詢結(jié)果。
下面通過(guò)對(duì)瀏覽器提交表單數(shù)據(jù)的處理來(lái)了解以下CG1的基本原理。
(1)當(dāng)客戶端的用戶填寫(xiě)好表單后,單擊“提交”按鈕向服務(wù)器發(fā)出HTTP請(qǐng)求(稱為CGI請(qǐng)求)、實(shí)際上這里的請(qǐng)求將發(fā)往
標(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)程通過(guò)標(biāo)準(zhǔn)輸出流將表單處理結(jié)果傳遞給服務(wù)器守護(hù)進(jìn)程,守護(hù)進(jìn)程再將處理結(jié)果作為應(yīng)答消息回送到客戶端并用瀏覽器顯示出來(lái)。
用最簡(jiǎn)單的話來(lái)說(shuō),CG1標(biāo)準(zhǔn)就是通過(guò)STDIN(標(biāo)準(zhǔn)輸入)或環(huán)境變量來(lái)得到服務(wù)器的輸入信息,并通過(guò)STDOUT(標(biāo)準(zhǔn)輸出)向服務(wù)器輸出信息。
不過(guò),用C或Perl開(kāi)發(fā)CGI程序時(shí),網(wǎng)站設(shè)計(jì)技術(shù)人員普遍感到難度大、修改復(fù)雜,效率不高。因此人們不斷開(kāi)發(fā)出一些既容易學(xué)習(xí)掌握,又能實(shí)現(xiàn)Web動(dòng)態(tài)交互功能的新技術(shù),目前發(fā)展得比較成熟的新技術(shù)主要有ASP,PHP和JSP。

新聞名稱:動(dòng)態(tài)網(wǎng)頁(yè)的CGI實(shí)現(xiàn)技術(shù)
分享網(wǎng)址:http://bm7419.com/news/151727.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、響應(yīng)式網(wǎng)站、網(wǎng)站營(yíng)銷(xiāo)、網(wǎng)站導(dǎo)航、網(wǎng)站維護(hù)、網(wǎng)頁(yè)設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站