⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 17.txt

📁 介绍VB里的各种控件的使用方法,窗口控制,图像编程以及OCX等内容,还提供了一个API集供参考.
💻 TXT
字号:
Windows操作平台下CGI的实现 

华中理工大学图像识别与人工智能研究所   龚建勇 

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

一、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下。C GI程序的执行一般有两种调用方式:一种是通过URL直接调用,如:"http://gjy.sic.o.ml.or g/cgi-win/cgi.exe",在Netscape的URL栏里直接写入上述描述就可以调用该程序:另一种方式,也是主要的方式是通过交互式主页里的FORM栏调用,通常都是用户在填完一张表后按确认按钮启动CGI程序。 
  
4.CGI工作的主要流程 
CGI工作的主要流程是:1.通过HTML获取用户输入的信息;2.将用户输入的信息传给服务器主机应用程序(如数据库查询);3.将服务器处理结果通过HTML文件返回给用户。 
二、Windows平台下CGI的工作原理 
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,或字串中含有控制字元,系统会把这些信息存在该栏指定的临时文件里并指出长度。 
三、CGI应用的实现 
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.exe"METHOD=POST> 
A Text Input:<INPUT TYPE="text"><BR> 
A Radio Input: 
1<INPUT TYPE="radio"NAME="radiol"VALUE=1> 
2<input type="radio" NAME="radiol"VALUE=2> 
3<INPUT TYPE="radio"NAME="radiol"VALUE=3><BR> 
OK Input:<INPUT TYPE="submit"VALUE="OK"> 
<INPUT TYPE="reset" VALUE="reset"> 
</FORM> 
</BODY> 
</HTML> 
将上述标记存成HTML文件,该主页作好后,将其放在website设定的主目录中。然后用浏览器观看,将会看到结果。 
其中FORM:说明一个交互式输入组合框。 
ACTION:指定该FORM对应的CGI程序的URL。 
INPUT:输入的形式,text为编辑框,radio为无线按钮等。 
INPUT里的第一个参数TYPE表明输入的类型,第二个参数NAME表示该输入框代表的变量名。用户在此输入的信息将存在这个变量里。CGI程序也是通过这些变量提取用户输入信息。 
3.CGI程序编写 
前面我们说过,原则上CGI程序可以用任何语言编写,但在windows平台下,一般只有 C和VB是适合的。因为CGI程序是后台执行的back-end程序,C和VB都可以方便地生成无界面的 back-end程序。考虑到效率,我们用C语言来作CGI程序的编写。 
Web server会通过Winexec来执行back-end,命令格式如下: 
back-end-exe cgi-data-file content-file outputfile url-args 
back-end-exe是CGI程序的完整路径,cgi-data-file是服务器产生的CGI资料文件,值为完整的路径:content-file是客户端发出的请求,其信息放在临时目录下的文件里,值为完整的路径;output-file是程序处理的结果,值为完整路径。url-args为URL中?后的参数。 
服务器生成的临时输入文件在客户请求结束后即自动消失,所以CGI程序的第一步就是截取该文件,然后将所需的信息提取出来并过滤,最后得到的就是用户输入,然后对其作相应处理,如写入留言板或转交给数据库应用程序作查询处理。 
值得一提的是VC和VB都提供了专用的从INI文件中提取信息的函数,即GetPrivateprofi leString()。 
4、服务器应用程序 
这一部分程序的功能就是对CGI转来的用户信息进行处理,处理的结果交给CGI程序的ou tput-file,通过CGI将其转交给用户。典型的服务器应用程序以数据库查询为代表。  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -