CGI

CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。在物理上是一段程序,运行在服务器上,提供同客户端 Html页面的接口。这样说大概还不好理解。那么我们看一个实际例子: 现在的个人主页上大部分都有一个留言本。留言本的工作是这样的:先由用户在客户端输入一些信息,如名字之类的东西。接着用户按一下“留言”(到目前为止工作都在客户端),浏览器把这些信息传送到服务器的CGI目录下特定的cgi程序中,于是cgi程序在服务器上按照预定的方法进行处理。在本例中就是把用户提交的信息存入指定的文件中。然后cgi程序给客户端发送一个信息,表示请求的任务已经结束。此时用户在浏览器里将看到“留言结束”的字样。整个过程结束。绝大多数的CGI程序被用来解释处理来自表单 的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器。CGI程序使网页具有交互功能。

处理步骤

⑴通过Internet把用户请求送到服务器。

⑵服务器接收用户请求并交给CGI程序处理。

⑶CGI程序把处理结果传送给服务器。

⑷服务器把结果送回到用户。

 

环境变量列表

SERVER-NAME:运行CGI序为机器名或IP地址。

SERVER-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-HOST:发送程序的主机名,不能确定该值。

REMOTE-ADDR:发送程序的机器的IP地址。

REMOTE-USER:发送程序的人名。

CONTENT-TYPE:POST发送,一般为applioation/xwww-form-urlencoded。

CONTENT-LENGTH:POST方法输入的数据的字节数。

 

CGI应用程序的工作原理是这样的:

  1.浏览器通过HTML表单或超链接请求指上一个CGI应用程序的URL。

  2.服务器收发到请求。

  3.服务器执行指定所CGI应用程序。

  4.CGI应用程序执行所需要的操作,通常是基于浏览者输人的内容。

  5.CGI应用程序把结果格式化为网络服务器和浏览器能够理解的文档(通常是HTML网页)。

  6.网络服务器把结果返回到浏览器中。

  有关CGI应用程序要注意的是:

  CGI应用程序运行在浏览器可以请求的服务器系统上,执行时需要使用服务器CPU时间和内存。如果有成千上万的这种程序会同时运行,那会对服务器系统提出极高的要求。你要慎重考虑这个问题,以防止服务器系统崩溃。

  不完善的CGI应用程序可能成为别人非法进人服务器系统的通道,有可能导致重要的资料被删除或外泄。

  CGI应用程序主要的用途有以下几种:

  根据浏览者填写的HTML表单发送定制的答复。

  创建可单击的图像缩小图。

  创建一个浏览者可以搜索内容的数据库。

  提供服务器与数据库的接口,并把结果转换成HTML文档。

  制作动态HTML文挡。

  如果一个CGI脚本可以在每台计算机上做同样的事情;编写脚本就会变的很容易。不幸的是,CGI脚本依赖于服务器的操作系统,因此,对于非UNIX服务器来说,Prl(UNIX下编写脚本的一个常用工具)脚本毫无用处。所以,你必须定制安装你的CGI脚本。

  大多数服务器都提供CGI-BIN目录 ,但是这还不够。因为你应该拥有自己的CGI-BIN。这样,你就能运行自己的脚本(而不是让自己的系统去适应已存在于系统上的脚本)。因此,你的提供商应安装CGI-BIN,且能够帮助你编写脚本。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值