一、CGI概述
1.CGI概念
CGI即通用網(wǎng)關接口(Common Gateway Interface),它是一個WWW服務器主機對外服務的標準接口。一般來說,一個CGI接口的功能就是在超文本文件和服務器主機應用程序間傳遞信息。
2.CGI程序語言
事實上,任何一種程序語言,只要能在服務器主機上利用CGI接口來編寫應用程序,都可以叫作CGI程序語言。目前最為流行的CGI程序語言有四種:C、Shell、Perl和Visual Basic,其它一些語言也有許多人在用,如TCL、Frotran及AppleScript等。下文我們將介紹用C語言編寫CGI的方法?!?BR> 3.CGI程序的執(zhí)行
CGI程序一般是個可執(zhí)行程序。編譯好的CGI程序一般要集中放在一個目錄下。具體存放的位置隨操作系統(tǒng)的不同而不同,例如UNIX系統(tǒng)下是放在cgi-bin子目錄下,而在Windows操作下(注意,這里不包括NT4.0)以Webstar或Website作WWW服務器,CGI程序都放在cgi-win下。CGI程序的執(zhí)行一般有兩種調(diào)用方式:一種是通過URL直接調(diào)用,如:http://gjy.sic.o.ml.org/cgi-win/cgi.exe,在Netscape的URL欄里直接寫入上述描述就可以調(diào)用該程序:另一種方式,也是主要的方式是通過交互式主頁里的FORM欄調(diào)用,通常都是用戶在填完一張表后按確認按鈕啟動CGI程序。
4.CGI工作的主要流程
CGI工作的主要流程是:1.通過HTML獲取用戶輸入的信息;2.將用戶輸入的信息傳給服務器主機應用程序(如數(shù)據(jù)庫查詢);3.將服務器處理結果通過HTML文件返回給用戶。
二、Windows平臺下CGI的工作原理
CGI主要的功能不外乎在服務器應用程序和客戶之間傳遞信息。我們知道,通常CGI應用在服務器和客戶端傳遞信息是通過輸入輸出流來實現(xiàn)的,如UNIX平臺下的CGI,通過讀取輸入流Scanf來獲取用戶輸入,讀取輸出流printf向用戶輸出結果。而Windows系統(tǒng)下CGI實現(xiàn)這一功能是通過文件系統(tǒng)來實現(xiàn),即通過一個特定的輸入文件來獲取用戶輸入的信息,通過一個輸出文件向用戶傳遞結果。
這里這個輸入文件是由WWW服務器生成的一個臨時文件,里面包含了各種環(huán)境信 壩沒淙胄畔?,以key=value的形式給出,類似于Windows里的INI文件。下面以一個典型的該文件為例說明主要層的含義。
[CGI]
Request Protocol=HTTP/1.0
Repuest Method=POST
Executable Path=/cgi-win/cgitest.exe
Logical Path=/CGI
Physical Path=c:\httpd\htdocs\CGI
Server Software=Website /1.1(Shareware non-commercial License))
Server Name=gjy.sic.o.ml.org
Server Port=80
Server Admin=gjy@gjy.sic.o.ml.org
CGI Version=CGI/1.1 WIN
Remote Adress=2.02.114.2.182
system〗
Debug Mode=No
Output File=D:\hs06f12d.out
*/*=Yes
image/gif=Yes
image/x-xbitmap=Yes
image/jpeg=Yes
[Extra Headers〗
User-Agent=Mozilla/3.0 (Windows;I;32bit)
[Fotra rm Literal〗
textl=hello world
radio1=2
[Form External〗
field300chars=D:\hs06f12d.000 300
fieldwith l inebreaks=D:\hs06f12d.001 43
[Frm Huge〗
fiel d230
K=d:s06f12d.002 276920
1.CGI概念
CGI即通用網(wǎng)關接口(Common Gateway Interface),它是一個WWW服務器主機對外服務的標準接口。一般來說,一個CGI接口的功能就是在超文本文件和服務器主機應用程序間傳遞信息。
2.CGI程序語言
事實上,任何一種程序語言,只要能在服務器主機上利用CGI接口來編寫應用程序,都可以叫作CGI程序語言。目前最為流行的CGI程序語言有四種:C、Shell、Perl和Visual Basic,其它一些語言也有許多人在用,如TCL、Frotran及AppleScript等。下文我們將介紹用C語言編寫CGI的方法?!?BR> 3.CGI程序的執(zhí)行
CGI程序一般是個可執(zhí)行程序。編譯好的CGI程序一般要集中放在一個目錄下。具體存放的位置隨操作系統(tǒng)的不同而不同,例如UNIX系統(tǒng)下是放在cgi-bin子目錄下,而在Windows操作下(注意,這里不包括NT4.0)以Webstar或Website作WWW服務器,CGI程序都放在cgi-win下。CGI程序的執(zhí)行一般有兩種調(diào)用方式:一種是通過URL直接調(diào)用,如:http://gjy.sic.o.ml.org/cgi-win/cgi.exe,在Netscape的URL欄里直接寫入上述描述就可以調(diào)用該程序:另一種方式,也是主要的方式是通過交互式主頁里的FORM欄調(diào)用,通常都是用戶在填完一張表后按確認按鈕啟動CGI程序。
4.CGI工作的主要流程
CGI工作的主要流程是:1.通過HTML獲取用戶輸入的信息;2.將用戶輸入的信息傳給服務器主機應用程序(如數(shù)據(jù)庫查詢);3.將服務器處理結果通過HTML文件返回給用戶。
二、Windows平臺下CGI的工作原理
CGI主要的功能不外乎在服務器應用程序和客戶之間傳遞信息。我們知道,通常CGI應用在服務器和客戶端傳遞信息是通過輸入輸出流來實現(xiàn)的,如UNIX平臺下的CGI,通過讀取輸入流Scanf來獲取用戶輸入,讀取輸出流printf向用戶輸出結果。而Windows系統(tǒng)下CGI實現(xiàn)這一功能是通過文件系統(tǒng)來實現(xiàn),即通過一個特定的輸入文件來獲取用戶輸入的信息,通過一個輸出文件向用戶傳遞結果。
這里這個輸入文件是由WWW服務器生成的一個臨時文件,里面包含了各種環(huán)境信 壩沒淙胄畔?,以key=value的形式給出,類似于Windows里的INI文件。下面以一個典型的該文件為例說明主要層的含義。
[CGI]
Request Protocol=HTTP/1.0
Repuest Method=POST
Executable Path=/cgi-win/cgitest.exe
Logical Path=/CGI
Physical Path=c:\httpd\htdocs\CGI
Server Software=Website /1.1(Shareware non-commercial License))
Server Name=gjy.sic.o.ml.org
Server Port=80
Server Admin=gjy@gjy.sic.o.ml.org
CGI Version=CGI/1.1 WIN
Remote Adress=2.02.114.2.182
system〗
Debug Mode=No
Output File=D:\hs06f12d.out
*/*=Yes
image/gif=Yes
image/x-xbitmap=Yes
image/jpeg=Yes
[Extra Headers〗
User-Agent=Mozilla/3.0 (Windows;I;32bit)
[Fotra rm Literal〗
textl=hello world
radio1=2
[Form External〗
field300chars=D:\hs06f12d.000 300
fieldwith l inebreaks=D:\hs06f12d.001 43
[Frm Huge〗
fiel d230
K=d:s06f12d.002 276920