CGI脚本程序通常在服务器上运行,可生成静态内容或动态内容。它可以将数据库服务器中的信息作为数据源,为用户提供定制化的服务。例如,雅虎、搜狐等搜索引擎的强大搜索功能就是通过CGI实现的。
CGI作为Web服务器的扩展,能够扩充其能力,使得Web站点更加生动有趣。它允许用户填写表单,提交信息给服务器,服务器再根据这些信息查询数据库或执行其他操作,生成定制的Web页面并发送给用户。需要注意的是,服务器和客户端之间没有“往返”信息,用户必须填写并提交表格,服务器会检查空白字段或错误信息,并要求用户重新提交。
CGI是非会话式的,无法在处理数据过程中暂停并返回浏览器请求更正数据。CGI处理数据,生成输出,然后终止。如果需要更正数据,服务器只能结束运行,等待用户重新提交数据。
CGI接口由以下部分组成:
1. 置于HTML文档中的CGI控制标记和字段说明符 2. 服务器内存中的环境变量 3. 客户端、服务器和脚本间的信息流
Web站点开发者使用CGI的步骤如下:
1. 创建HTML表单,并添加标签以定义输入框、下拉列表框和按钮,收集用户输入。 2. 编写CGI脚本,接受用户在HTML表单上的输入,并对其进行处理,如查询数据库。
CGI脚本程序可以用C、C++等语言在多种平台上进行开发,具有良好的兼容性。此外,CGI应用程序可以基于不同的程序系统,如DOS、UNIX、Windows、Windows NT等,使用UNIX Shell描述语言或Perl语言编写。
然而,CGI的执行速度较慢。为此,Open Market推出了一种名为FastCGI的协议,通过维护一个始终可用的CGI进程池,提高执行速度。
什么是公共网关接口
CGI是信息服务器主机对外信息服务的标准接口,为了向客户端提供动态信息而制定。通过专门编写的CGI脚本程序(在CGI控制下运行的程序,通常称CGI程序),不仅可以生成静态的内容,而且可以生成完全无法预见的动态的内容。它能根据用户的需求输出动态信息,将数据库服务器中的信息作为数据源对外提供服务,将WWW服务和数据库服务结合起来。比如雅虎、搜狐等搜索引擎提供的强大搜索功能便是利用CGI实现的。
CGI是服务器的扩展,以扩充Web服务器能力。编写的服务器扩展使得Web站点更生动有趣。它不是传送一个乏味的静态页,CGI(和其他服务器扩展)让Web客户机从Web服务器请求信息。用户填写一个提交给服务器的表格,服务器使用提交的信息查询数据库或输入到一个程序,然后结果用于创建定制的Web页并将它发送给客户机。注意:在服务器和客户机间没有“往返”信息,用户必须填写表格并提交它,必须检测空白字段或含有错误信息的字段,并要求客户机必须重新提交表格。
CGI是非会话式的。它不能在处理来自Web浏览器的数据过程中停止并返回Web浏览器请求更正数据,CGI只允许数据输入。CGI处理数据,生成输出,然后终止。如果网关需要数据被更正,它只能运行结束,并当Web服务器重新提交数据时再开始。 CGI接口是在Web客户机和Web服务器间提供双向接口的协议,CGI脚本是决定它们通信时发生什么的一套命令。发明CGI是为扩展HTTP协议。它由以下部分组成:
•置于HTML文档中的CGI控制标记和字段说明符
•在服务器存放脚本用信息的内存中的环境变量
•客户机、服务器和脚本间的信息流
Web站点开发者使用CGI的步骤是,首先创建HTML表单并添加标签以定义出现在表单上的输入框、下拉列表框和按钮,以便收集来自用户的输入。其次,编写CGI脚本以接受端用户在HTML表单上键入的信息,并用它做点什么,比如查询后端数据库。Perl是建立脚本和报表的工具,很多程序员用它创建CGI脚本。
CGI脚本程序可以用C、C++等语言在多种平台上进行开发。无需太大修改就可以从一个平台移植到另一个平台上运行,具有很好的兼容性。
CGI应用程序可以是基于不同的程序系统,如DOS、UNIX、Windows、Windows NT等。CGI应用程序可以使用UNIX Shell描述语言或Perl语言写成。
CGI是极慢的,所以0pen Market创建了一个称为FastCGI的协议来解决这一问题。FastCGI不需要服务器创建地址空间,而是每当它需要运行CGI时,通过维护一个总是可用的CGI进程池来实现。