Windows操作平台下CGI的实现

2008-04-09 04:39:32来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

 实现WWW服务器与客户的交互可以有多种途径,如CGI、ISAPI、JAVA、ASP等,CGI是一种大家都比较熟悉的一种实现上述功能的有效途径,本文将就如何在Windows平台下实现CGI功能作一介绍。

 

1.CGI概念

  CGI即通用网关接口(Common Gateway Interface),它是一个WWW服务器主机对外服务的标准接口。一般来说,一个CGI接口的功能就是在超文本文件和服务器主机应用程序间传递信息。 

2.CGI程序语言

  事实上,任何一种程序语言,只要能在服务器主机上利用CGI接口来编写应用程序,都可以叫作CGI程序语言。目前最为流行的CGI程序语言有四种:C、Shell、Perl和Visual Basic,其它一些语言也有许多人在用,如TCL、Frotran及AppleScript等。下文我们将介绍用C语言编写CGI的方法。 

3.CGI程序的执行

  CGI程序一般是个可执行程序。编译好的CGI程序一般要集中放在一个目录下。具体存放的位置随操作系统的不同而不同,例如UNIX系统下是放在cgi-bin子目录下,而在Windows操作下(注意,这里不包括NT4.0)以Webstar或Website作WWW服务器,CGI程序都放在cgi-win下。CGI程序的执行一般有两种调用方式:一种是通过URL直接调用,如:http://gjy.sic.o.ml.org/cgi-win/cgi.exe,在Netscape的URL栏里直接写入上述描述就可以调用该程序:另一种方式,也是主要的方式是通过交互式主页里的FORM栏调用,通常都是用户在填完一张表后按确认按钮启动CGI程序。  

4.CGI工作的主要流程

  CGI工作的主要流程是:1.通过HTML获取用户输入的信息;2.将用户输入的信息传给服务器主机应用程序(如数据库查询);3.将服务器处理结果通过HTML文件返回给用户。

  CGI主要的功能不外乎在服务器应用程序和客户之间传递信息。我们知道,通常CGI应用在服务器和客户端传递信息是通过输入输出流来实现的,如UNIX平台下的CGI,通过读取输入流Scanf来获取用户输入,读取输出流printf向用户输出结果。而Windows系统下CGI实现这一功能是通过文件系统来实现,即通过一个特定的输入文件来获取用户输入的信息,通过一个输出文件向用户传递结果。

  这里这个输入文件是由WWW服务器生成的一个临时文件,里面包含了各种环境信 坝没?淙胄畔?,以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信息,如要求的协议Request Protocol,提取用户信息的方式Me thod,执行程序的路径Exectable,服务器软件(Server Software),服务器名(Server Name), 端口号(server Port)等。

2.Accept栏

  这一栏包含客户端可以接受的文件类型。

3.System栏

  这一栏包含一些Widnows CGI使用的特别项目如输出(Output File),Content File

4.Form Literal资料栏

  如果用户端的要求是使用POST方式,用户输入的资料会被解码后以key=value的方式放在这一栏里,这里的key即输入栏的变量名,value是用户输入的信息。

5.Form External栏

  如果解码后的字串长度超过254byte,或字串中含有控制字元,系统会把这些信息存在该栏指定的临时文件里并指出长度。

1、开发平台

  首先操作系统应为Windows操作系统。我们用的是Windows 95。其次需要建立WWW服务器 ,我们用的是Website1.1。安装website并设置各相应目录后,将主页放入主目录中。

2、交互主页的制作

  交互主页就是用户可以在主页上输入信息,而不是单纯仅供浏览的主页。一般来说,用户输入信息的形式有填写编辑框,点选无线按钮等选择框及选择下拉菜单等。下面是一个简单的例子。

<HTML>
<HEAD>
<TITLT>Form Sample</TITLE>
<HEAD>
<BODY>
<FORM ACTION=http://gjy.sic.o.ml.org/cgi/win/sample.exeMETHOD=POST>
A Text Input:<INPUT TYPE=text><BR> A Radio Input:
1<INPUT TYPE=radioNAME=radiolVALUE=1>
2<input type=radio NAME=radiolVALUE=2>
3<INPUT TYPE=radioNAME=radiolVALUE=3><BR>
OK Input:<INPUT TYPE=submitVALUE=OK>
<INPUT TYPE=reset VALUE=reset>
</FORM>
</BODY>
</HTML>

  将上述标记存成HTML文件,该主页作好后,将其放在website设定的主目录中。然后用浏览器观看,将会看到结果。

  其中:FORM:说明一个交互式输入组合框。
     ACTION:指定该FORM对应的CGI程序的URL。
     INPUT:输入的形式,text为编辑框,radio为无线按钮等。

  INPUT里的第一个参数TYPE表明输入的类型,第二个参数NAME表示该输入框代表的变量名。用户在此输入的信息将存在这个变量里。CGI程序也是通过这些变量提取用户输入信息。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:ADO 揭密 1

下一篇:利用VB设计图像的显示效果