一、cgi概述
cgi(公用閘道器介面)規定了web伺服器呼叫其他可執行程式(cgi程式)的介面協議標準。web伺服器通過呼叫cgi程式實現和web瀏覽器的互動,
也就是cgi程式接受web瀏覽器傳送給web伺服器的資訊,進行處理,將響應結果再回送給web伺服器及web瀏覽器。cgi程式一般完成web網頁中表單(form)資料的處理、資料庫查詢和實現與傳統應用系統的整合等工作。cgi程式可以用任何程式語言編寫,如shell指令碼語言、perl、fortran、pascal、c語言等。但是用c語言編寫的cgi程式具有執行速度快、安全性高(因為c語言程式是編譯執行且不可被修改)等特點。
cgi介面標準包括標準輸入、環境變數、標準輸出三部分。
1.標準輸入
cgi程式像其他可執行程式一樣,可通過標準輸入(stdin)從web伺服器得到輸入資訊,如form中的資料,這就是所謂的向cgi程式傳遞資料的post方法。這意味著在作業系統命令列狀態可執行cgi程式,對cgi程式進行除錯。post方法是常用的方法,本文將以此方法為例,分析cgi程式設計的方法、過程和技巧。
2.環境變數
作業系統提供了許多環境變數,它們定義了程式的執行環境,應用程式可以訪問它們。web伺服器和cgi介面又另外設定了自己的一些環境變數,用來向cgi程式傳遞一些重要的引數。cgi的get方法還通過環境變數query-string向cgi程式傳遞form中的資料。
3.標準輸出
cgi程式通過標準輸出(stdout)將輸出資訊傳送給web伺服器。傳送給web伺服器的資訊可以用各種格式,通常是以純文字或者html文字的形式,這樣我們就可以在命令列狀態除錯cgi程式,並且得到它們的輸出。
下面是乙個簡單的cgi程式,它將html中form的資訊直接輸出到web瀏覽器。
#include;stdio.h;
#include;stdib.h;
main()
下面對此程式作一下簡要的分析。
prinft(″contenttype:text/plain\\n\\n″);
此行通過標準輸出將字串″contenttype:text/plain\\n\\n″傳送給web伺服器。它是乙個mime頭資訊,它告訴web伺服器隨後的輸出是以純ascii文字的形式。請注意在這個頭資訊中有兩個新行符,這是因為web伺服器需要在實際的文字資訊開始之前先看見乙個空行。
if(getenv(″content-length″))
n=atoi(getenv(″content-length″));
此行首先檢查環境變數content-length是否存在。web伺服器在呼叫使用post方法的cgi程式時設定此環境變數,它的文字值表示web伺服器傳送給cgi程式。
用C語言進行CGI程式設計
用c語言進行cgi程式設計 一 cgi概述 cgi 公用閘道器介面 規定了web伺服器呼叫其他可執行程式 cgi程 序 的介面協議標準。web伺服器通過呼叫cgi程式實現和web瀏覽器的互動,也就是cgi程式接受web瀏覽器傳送給web伺服器的資訊,進行處理,將響應結果再回送給web伺服器及web瀏...
用C語言進行CGI程式設計
一 cgi概述 cgi 公用閘道器介面 規定了web伺服器呼叫其他可執行程式 cgi程式 的介面協議標準。web伺服器通過呼叫cgi程式實現和web瀏覽器的互動 也就是cgi程式接受web瀏覽器傳送給web伺服器的資訊,進行處理,將響應結果再回送給web伺服器及web瀏覽器。cgi程式一般完成web...
C 進行CGI的WEB程式設計
公共閘道器介面 cgi 是一套標準,定義了資訊是如何在 web 伺服器和客戶端指令碼之間進行交換的。cgi 規範目前是由 ncsa 維護的,ncsa 定義 cgi 為 公共閘道器介面 cgi 是一種用於外部閘道器程式與資訊伺服器 如 http 伺服器 對接的介面標準。目前的版本是 cgi 1.1,c...