多媒体

移动通信

计算机网络

  无限网络今日始
  羽檄交驰话通信
  计算机网络的五脏六腑
  嫦娥孤凄与谁邻
  因特网的游戏规则
  团结的力量――网络互连
  Internet今昔谈
  网络应用万花筒
  小心驶得万年船

智能网

光通信

微波通信

卫星通信

交换网

接入网

电信管理网

 

 

  
  电信博物馆 > 计算机网络 > internet今昔谈 > 初探Web技术


 


认识CGI

  CGI是信息服务的标准外部应用接口。一个通过Web访问的简单HTML文档是静态的,即文件的内容是不变的。而一个CGI程序则不然,它是实时的,所以它输出的是动态的信息。如果我们想在WWW和数据库之间建立联系,使人们可以从全球的任意地点都可以查询数据库的信息。我们就可以用CGI来完成这一工作:Web服务器通过CGI程序传送信息给数据库,从数据库得到返回的数据,Web服务器再将数据传给客户方的浏览器。当然数据库应用只是CGI应用的一个方面。CGI可以支持多种不同的应用、只要是按CGI规范写的可执行的程序都可以是CGI应用。所以实际上对CGI程序没有什么限制。

  这是一套程序语言规则,用于描述WWW服务器程序与同一台机器上的其他软件的通讯,以及其他软件(也就是所谓的CGI程序)向WWW服务器发送信息的方法。一个程序,只要严格按照CGI标准控制输入和输出,就可以成为CGI程序。通常,CGI程序是从WWW服务器上获取数据并对之进行处理(例如将一个窗体表格的内容填写到电子邮件信息中,或是将一串信息转化为数据库查询)的小型程序。你经常可以看见CGI程序在包含“cgi-bin”的URL中被使用,不过也不总是这样。

  CGI是Web服务器运行时外部程序的规范,按照CGI编写的程序可以扩展服务器的功能,完成服务器本身不能完成的工作,外部程序执行时可以生成HTML文档,并将文档返回Web服务器。CGI应用程序能够与浏览器进行交互作用,还可以通过数据库的API与数据库服务器等外部数据源进行通信,如一个CGI程序可以从数据库服务器中获取数据,然后格式化为HTML文档后发送给浏览器,也可以将从浏览器获得的数据放到数据库中。几乎所有的服务器软件都支持CGI,开发者可以使用任何一种Web服务器内置语言编写CGI,其中包括流行的C、C++、VB和Delphi等。

  标准CGI使用命令行参数或环境变量来表示服务器的详细请求,服务器与浏览器间的通信采用标准输入输出方式。当服务器接收浏览器发来的CGI请求时,服务器对该请求进行分析,设置所需的环境变量或命令参数,然后创建一个子进程启动CGI程序,CGI执行完毕后,使用标准输出将执行结果返回给服务器。CGI的输出可以有许多类型,比如HTML文档、图象、纯文本或声音等,它还可以输出指向其他文档的连接。

  从以上可以看出,CGI程序应用是作为一个独立的外部应用来运行,与服务器上的其他进程竞争处理器资源,这将导致运行速度减慢。而且,用CGI开发支持WWW的应用也是一个比较困难的过程。开发人员不仅要掌握HTML语言,还要掌握低级编程语言。而在将Web服务器访问数据库过程中,连接状态的管理也是很重要的。如果没有状态管理,那么浏览器的每一次请求,都需要一个连接的建立与释放的过程,效率较低。CGI不提供状态管理功能。另外,必须用某个特定数据库服务器的专用SQL语言来手工编写数据库接口,其移植性也不好。


[上一页] [下一页]