较早的动态网页技术主要采用CGI,由于CGI技术难度较大、效率不高,后来又相继出现了如ASP、PHP,JSP等许多新的动态网页技术。为了对这些技术的发展过程能够有所了解,并便于进行对比。
l.CGI的可移植性和可实现的功能
CGI(CommonGatewayInterface,公用网关接口)技术是为HTML语言提供的一种扩展手段,允许用户编写扩展应用程序来扩展服务器的功能,实现客户端与服务器的交互操作。CG1程序可以在多种平台上实现一定的功能,并且无需做太大的更改,就可以轻松地完成平台之间的移植。任何支持CGI的服务器与其他专用服务器的扩展功能相比,主要的一个特点就是CGI程序的服务器可以用任何语言编写,在任何平台上开发,只要它满足CGI规范就可以。
由于CGI程序的大部分处理对象是字符串,所以编写CGI程序的语言最好采用Perl、C/C++语言,其他语言在编写CGI程序时都存在不足之处,主要是因为它们缺乏可以灵活应用的字符串处理函数。
HTML加上CGI可以实现以下www服务,这些功能是HTML本身无法实现的:
(1)处理客户端提交的表单数据;
(2)创建Web页面上大多数非静态的内容;
(3)在Web页面和文档中增加搜索功能;
(4)创建交互应用,如聊天室、投票站、计数器等;
(5)允许页面动态生成、生成用户定制的页面等。
2.CGI的基本原理
CGI是一种通用的接口标准。CG1程序就是符合这种通用接口标准的、运行在Web服务器上的程序、它的工作就是控制浏览器的信息要求,产生并传回浏览器所需的文件。
CGI是外部扩展应用程序与www服务器交互的一个标准接口。按照CGI标准编写的外部。
扩展应用程序可以处理客户端(www浏览器)输入的需要协同工作的数据,从而完成客户端与服务器的交互操作。例如,可以编写CGI外部扩展程序来访问外部数据库,客户端用户可以通过CGI外部扩展程序和WWW服务器进行数据查询并得到查询结果。
下面通过对浏览器提交表单数据的处理来了解以下CG1的基本原理。
(1)当客户端的用户填写好表单后,单击“提交”按钮向服务器发出HTTP请求(称为CGI请求)、实际上这里的请求将发往<FORM>标记中的ACTION属性标识的URL。
(2)Web服务器守护进程收到这个请求后,就会建立一个子进程(称为CGI进程)。该CGI子进程将CGI请求的有关数据设置成环境变量,在外部CGI程序与服务器之间建立两条数据通道(标准输入/输出),然后启动URL指定的CGI程序,并与该子进程保持同步,以监测CGI程序的执行状态。
(3)子进程通过标准输出流将表单处理结果传递给服务器守护进程,守护进程再将处理结果作为应答消息回送到客户端并用浏览器显示出来。
用最简单的话来说,CG1标准就是通过STDIN(标准输入)或环境变量来得到服务器的输入信息,并通过STDOUT(标准输出)向服务器输出信息。
不过,用C或Perl开发CGI程序时,网站设计技术人员普遍感到难度大、修改复杂,效率不高。因此人们不断开发出一些既容易学习掌握,又能实现Web动态交互功能的新技术,目前发展得比较成熟的新技术主要有ASP,PHP和JSP。
>>> 查看《动态网页的CGI实现技术》更多相关资讯 <<<
本文地址:http://tonv.cn/news/html/2676.html