l.CGI的可移植性和可實現的功能
CGI(Common Gateway Interface,公用網關接口)技術是為HTML語言提供的一種擴展手段,允許用戶編寫擴展應用程序來擴展服務器的功能,實現客戶 端與服務器的交互操作。CG1程序可以在多種平臺上實現一定的功能,并且無需 做太大的更改,就可以輕松地完成平臺之間的移植。任何支持CGI的服務器與其他專用服務器的擴展功能相比,主要的一個特點就是CGI程序的服務器可以用任何語言編寫,在任何平臺上開發,只要它滿足CGI規范就可以。
由于CGI程序的大部分處理對象是字符串,所以編寫CGI程序的語言最好采用Perl、C/C++語言,其他語言在編寫CGI程序時都存在不足之處,主要是因為它們缺乏可以靈活應用的字符串處理函數。
HTML加上CGI可以實現以下www服務,這些功能是HTML本身無法實現的:
(1) 處理客戶端提交的表單數據;
(2) 創建Web頁面上大多數非靜態的內容;
(3) 在Web頁面和文檔中增加搜索功能;
(4) 創建交互應用,如聊天室、投票站、計數器等;
(5) 允許頁面動態生成、生成用戶定制的頁面等。
2.CGI的基本原理
CGI是一種通用的接口標準。CG1程序就是符合這種通用接口標準的、運行在Web服務器上的程序、它的工作就是控制瀏覽器的信息要求,產生并傳回瀏覽器所需的文件。
CGI是外部擴展應用程序與www服務器交互的一個標準接口。按照CGI標準編寫的外部 。
擴展應用程序可以處理客戶端(www瀏覽器)輸入的 需要協同工作的數據,從而完成客戶端與服務器的交互操作。例如,可以編寫CGI外部擴展程序來訪問外部數據庫,客戶端用戶可以通過CGI外部擴展程序和WWW服務器進行數據查詢并得到查詢結果。
下面通過對瀏覽器提交表單數據的處理來了解以下CG1的基本原理。
(1) 當客戶端的用戶填寫好表單后,單擊“提交”按鈕向服務器發出HTTP請求(稱為CGI請求)、實際上這里的請求將發往<FORM>標記中的ACTION屬性標識的URL。
(2) Web服務器守護進程收到這個請求后,就會建立一個子進程(稱為CGI進程)。該CGI子進程將CGI請求的有關數據設置成環境變量,在外部CGI程序與服務器之間 建立兩條數據通道(標準輸入/輸出),然后啟動URL指定的CGI程序,并與該子進程保持同步,以監測CGI程序的執行狀態。
(3) 子進程通過標準輸出流將表單處理結果傳遞給服務器守護進程,守護進程再將處理結果作為應答消息回送到客戶端并用瀏覽器顯示出來。
用最簡單的話來說,CG1標準就是通過STDIN(標準輸入)或環境變量來得到服務器的輸入信息,并通過STDOUT(標準輸出)向服務器輸出信息。
不過,用C或Perl開發CGI程序時,網站設計技術人員普遍感到難度大、修改復雜,效率不高。因此人們不斷開發出一些既容易學習掌握,又能實現Web動態交互功能的新技術,目前發展得比較成熟的新技術主要有ASP,PHP和JSP。
本文地址:http://m.knowyourextract.com//article/2676.html