1. 定义:
cgi(common gateway interface)是http服务器与你的或其它机器
上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。
2. 功能:
绝大多数的cgi程序被用来解释处理杰自表单的输入信息,并在服
务器产生相应的处理,或将相应的信息反馈给浏览器。cgi程序使
网页具有交互功能。
3. 运行环境:
cgi程序在unix操作系统上cern或ncsa格式的服务器上运行。
在其它操作系统(如:windows nt及windows95等)的服务器上
也广泛地使用cgi程序,同时它也适用于各种类型机器。
4. cgi处理步骤:
⑴通过inte.net把用户请求送到服务器。
⑵服务器接收用户请求并交给cgi程序处理。
⑶cgi程序把处理结果传送给服务器。
⑷服务器把结果送回到用户。
5. cgi服务器配置:
cgi程序不是放在服务器上就能顺利运行,如果要想使其在服务器
上顺利的运行并准确的处理用户的请求,则须对所使用的服务器进
行必要的设置。
配置:根据所使用的服务器类型以及它的设置把cgi程序放在某一
特定的目录中或使其带有特定的扩展名。
⑴cren格式服务器的配置:
编辑cren格式服务器的配置文件通常为/etc/httpd.conf/
在文件中加入:exec cgi-bin/*/home/www/cgi-bin/*.exec
命令中出现的第一个参数cgi-bin/*指出了在url中出现的目录
名字,并表示它出
现在系统主机后的第一个目录中,如:
http://edgar.stern.nyn.edu/cgi-bin/
命令中的第二个参数表示cgi程序目录放在系统中的真实路径。
cgi目录除了可以点网络文件放在同一目录中,也可以放在系统
的其它目录中,但必须保证在你的系统中也具有同样的目录。在
对服务器完成设置后,须重新启动服务器(除非http服务器是用
.netd启动的)。
⑵ncsa格式服务器的配置
在ncsa格式服务器上有两种方法进行设置:
①在srm.conf文件(通常在conf目录下)中加入:
script alias/cgi-bin/cgi-bin/
script alias命令指出某一目录下的文件是可执行程序,且这
个命令是用来执行
这些程序的;此命令的两个参数与cern格式服务器中的exec命
令的参数的含意一样。
②在srm.conf文件加入:
add type application/x-httpd-cgi.cgi
此命令表示在服务器上增加了一种新的文件类型,其后第一个
参数为cgi程序的mime类型,第二个参数是文件的扩展名,表
示以这一扩展名为扩展名的文件是cgi程序。
在用上述方法之一设置服务器后,都得重新启动服务器(除非
http服务器是用.netd启动的)。
6. cgi的编写语言
cgi可以用任何一种语言编写,只要这种语言具有标准输入、输出和
环境变量。对初学者来说,最好选用易于归档和能有效表示大量数据
结构的语言,例如
unix环境中:
· perl (practical extraction and reporting language)
· bourne shed或者tcl (tool command language)
windows环境中:
· c和c++
由于inte.net上大部分服务器使用的是unix操作系统,且几乎任
一unix操作系统中都有bourne shell,因而后面讲述的例子中大部
分是用bourne shell编写的。
7. cgi环境变量列表
用 好易环境变量探针 来查看cgi环境变量
server-name:运行cgi序为机器名或ip地址。
seuver-interface:www服务器的类型,如:cern型或ncsa型。
server-protocol:通信协议,应当是http/1.0。
server-port:tcp端口,一般说来web端口是80。
http-accept:http定义的浏览器能够接受的数据类型。
http-referer: 发送表单的文件url。
(并非所有的浏览器都传送这一变量)
http-user-agent:发送表单的浏览器的有关信息。
getway-interface:cgi程序的版本,在unix下为 cgi/1.1。
path-translated: path-info中包含的实际路径名。
path-info:浏览器用get方式发送数据时的附加路径。
script-name: cgi程序的路径名。
query-string:表单输入的数据,url中间号后的内容。
remote-nost:发送程序的主机名,不能确定该值。
remote-addr:发送程序的机器的ip地址。
remote-usbr:发送程序的人名。
content-type:post发送,一般为applioation/xwww-form-urlencoded。
content-length:post方法输入的数据的字节数。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器