Windows操作平臺下CGI的實現(xiàn)

字號:

一、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