来源:linux宝库作者:linux宝库 发布时间:2007-09-30 00:00:00


CGI简介
下面继续介绍CGI。
CGI是个连接外部应用程式到信息服务器(比如HTTP或网络服务器)的标准。一个简单的HTML文档是无交互后台程式,他是静态的,也就是说他处于一个不可变的状态,即文本文档不能够变化。相反地,CGI程式是能够实时执行地,他能够输出动态的信息。
举个例子吧,假如您想把Unix数据库”挂到”万维网上,并允许世界各地的人能够访问他。基本上,就就需要创建一个CGI程式,他的执行将传递信息给数据库引擎,并且把解雇返回给用户显示出来。这是个网关的例子。
数据库例子是个简单的思想,在实际应用过程中更为复杂。实际上没有什么不能挂到网络上面的。但是只有一件事情您必须记住:不管您的CGI程式是怎样,一定不能花太多的时间来处理。否则,用户就做在奔腾机前面静静地等着浏览器的显示结果,这势必伤透了”奔腾的心”。
下面讲讲CGI的特别需要:
既然CGI程式是可执行的,那基本上就等价于世界任何地方的人能够在您的系统中运行CGI程式,所以这是一种不安全的事情。因此在使用CGI程式的时候,需要一些安全的预防措施。可能,一种有效的方法是将CGI程式放置在一个特别的目录中,这样网络服务器件只是执行CGI程式而不是将他显示到浏览器中。这个特别的目录通常处在网络管理员直接控制的目录,这样就能够阻止普通用户创建CGI程式。仍然有其他几种方法能够允许用户访问CGI脚本,但是这需要网络管理员为他进行一些配置。在这一点上,您可能有和网络管理员联系以获得访问CGI权限的冲动。
假如您有一个NCSA HTTPd服务器分布的版本,您将看到一个目录/cgi-bin。这个目录就是上面所提的特别目录,他就是放置CGI程式的地方。CGI程式能够用任何的语言来编写,并且能够在以下的系统中执行:
C/C++
Fortran
PERL
TCL
任何的Unix shell
Visual Basic
AppleScript
采取什么的语言依靠您的系统支持什么语言而定的。假如您使用过一个编程语言如C或Fortran,您就会知道在运行程式之前必须对程式进行编译。假如您进入这个目录,您就会发现一些CGI程式的源代码。但是假如您使用其中一种脚本语言,比如PERL、TCL或Unix shell,脚本就只需要放置在/cgi-bin目录中,因为没有相关的源代码。许多设计人员喜欢使用CGI脚本而不使用编程语言,因为脚本比需要编译的程式语言更容易调试、修改和维护。
|
还没有关于此文章的相关评论!