較早的動態(tài)網(wǎng)頁技術(shù)主要采用CGI,由于CGI技術(shù)難度較大、效率不高,后來又相繼出現(xiàn)了如ASP、PHP,JSP等許多新的動態(tài)網(wǎng)頁技術(shù)。為了對這些技術(shù)的發(fā)展過程能夠有所了解,并便于進行對比。
l.CGI的可移植性和可實現(xiàn)的功能CGI(CommonGatewayInterface,公用網(wǎng)關接口)技術(shù)是為HTML語言提供的一種擴展手段,允許用戶編寫擴展應用程序來擴展服務器的功能,實現(xiàn)客戶端與服務器的交互操作。CG1程序可以在多種平臺上實現(xiàn)一定的功能,并且無需做太大的更改,就可以輕松地完成平臺之間的移植。任何支持CGI的服務器與其他專用服務器的擴展功能相比,主要的一個特點就是CGI程序的服務器可以用任何語言編寫,在任何平臺上開發(fā),只要它滿足CGI規(guī)范就可以。
由于CGI程序的大部分處理對象是字符串,所以編寫CGI程序的語言最好采用Perl、C/C++語言,其他語言在編寫CGI程序時都存在不足之處,主要是因為它們?nèi)狈梢造`活應用的字符串處理函數(shù)。
HTML加上CGI可以實現(xiàn)以下www服務,這些功能是HTML本身無法實現(xiàn)的:
(1)處理客戶端提交的表單數(shù)據(jù);
(2)創(chuàng)建Web頁面上大多數(shù)非靜態(tài)的內(nèi)容;
(3)在Web頁面和文檔中增加搜索功能;
(4)創(chuàng)建交互應用,如聊天室、投票站、計數(shù)器等;
(5)允許頁面動態(tài)生成、生成用戶定制的頁面等。
2.CGI的基本原理CGI是一種通用的接口標準。CG1程序就是符合這種通用接口標準的、運行在Web服務器上的程序、它的工作就是控制瀏覽器的信息要求,產(chǎn)生并傳回瀏覽器所需的文件。
CGI是外部擴展應用程序與www服務器交互的一個標準接口。按照CGI標準編寫的外部 。
擴展應用程序可以處理客戶端(www瀏覽器)輸入的需要協(xié)同工作的數(shù)據(jù),從而完成客戶端與服務器的交互操作。例如,可以編寫CGI外部擴展程序來訪問外部數(shù)據(jù)庫,客戶端用戶可以通過CGI外部擴展程序和WWW服務器進行數(shù)據(jù)查詢并得到查詢結(jié)果。
下面通過對瀏覽器提交表單數(shù)據(jù)的處理來了解以下CG1的基本原理。
(1)當客戶端的用戶填寫好表單后,單擊“提交”按鈕向服務器發(fā)出HTTP請求(稱為CGI請求)、實際上這里的請求將發(fā)往