公共网关接口CGI(Common Gateway Interface) 是WWW技术中最重要的技术之一,有着不可替代的重要地位。CGI是外部
应用程序(CGI程序)与Web
服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的规程。CGI规范允许Web
服务器执行外部
程序,并将它们的输出发送给Web
浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。
Common Gateway Interface,简称CGI。在物理上是一段
程序,运行在
服务器上,提供同
客户端HTML页面的接口。这样说大概还不好理解。那么我们看一个实际例子:现在的个人主页上大部分都有一个留言本。留言本的工作是这样的:先由用户在
客户端输入一些信息,如名字之类的东西。接着用户按一下“留言”(到目前为止工作都在客户端),
浏览器把这些信息传送到
服务器的CGI目录下特定的cgi
程序中,于是cgi程序在服务器上按照预定的方法进行处理。在本例中就是把用户提交的信息存入指定的文件中。然后cgi
程序给
客户端发送一个信息,表示请求的任务已经结束。此时用户在
浏览器里将看到“留言结束”的字样。整个过程结束。
功能:
绝大多数的CGI
程序
被用来解释处理来自
表单
的输入信息,并在
服务器
产生相应的处理,或将相应的信息反馈给
浏览器
。CGI
程序
使网页具有交互功能。
运行环境:
在其它
操作系统(如:Windows NT及Windows 95等)的
服务器上也广泛地使用CGI
程序,同时它也适用于各种类型机器。
处理步骤:
⑴通过Internet把用户请求送到web
服务器。
⑵web
服务器接收用户请求并交给CGI
程序处理。
优点:
CGI可以为我们提供许多HTML无法做到的功能。比如 a.一个记数器 b.顾客信息表格的提交以及统计 c.搜索
程序 d.WEB
数据库,用Html是没有办法记住客户的任何信息的,就算用户愿意让你知道。用Html也是无法把信息记录到某一个特定文件里的。要把
客户端的信息记录在
服务器的硬盘上,就要用到CGI。这是CGI最重要的作用,它补充了Html的不足。是的,仅仅是补充,不是替代。
它是运行在Web
服务器上的一个
程序,并由来自于浏览者的输入触发。CGI是在HTTP
服务器下运行外部程序(或
网关)的一个接口,它能让网络用户访问远程系统上的使用类型程序,就好像他们在实际使用那些远程计算机一样。
CGI能够让浏览者与
服务器进行交互,如果你曾经遇到过在网络上填表或者进行搜索,就很有可能就是用的CGI。
尽管CGI易于使用,但是当大批人同时使用一个CGI
应用程序是会反应较慢,
网络服务器 速度也会受到很大 影响。CGI
应用程序的优点是可以独立运行。
CGI
应用程序可以由大多数的
编程语言编写,如Perl(Practical Extraction and Report Language)、C\C++、Java 和Visual Basic等。不过对于那些没有太多编程经验的
网页制作人来说,实在是一个不小的难题。
工作原理:
CGI可以为我们提供许多HTML无法做到的功能。比如 a.一个记数器 b.顾客信息表格的提交以及统计 c.搜索
程序 d.WEB
数据库,用Html是没有办法记住客户的任何信息的,就算用户愿意让你知道。用Html也是无法把信息记录到某一个特定文件里的。要把
客户端的信息记录在
服务器的硬盘上,就要用到CGI。这是CGI最重要的作用,它补充了Html的不足。是的,仅仅是补充,不是替代。
它是运行在Web
服务器上的一个
程序,并由来自于浏览者的输入触发。CGI是在HTTP
服务器下运行外部程序(或
网关)的一个接口,它能让网络用户访问远程系统上的使用类型程序,就好像他们在实际使用那些远程计算机一样。
CGI能够让浏览者与
服务器进行交互,如果你曾经遇到过在网络上填表或者进行搜索,就很有可能就是用的CGI。
尽管CGI易于使用,但是当大批人同时使用一个CGI
应用程序是会反应较慢,
网络服务器 速度也会受到很大 影响。CGI
应用程序的优点是可以独立运行。
CGI
应用程序可以由大多数的
编程语言编写,如Perl(Practical Extraction and Report Language)、C\C++、Java 和Visual Basic等。不过对于那些没有太多编程经验的
网页制作人来说,实在是一个不小的难题。
注意的问题:
不完善的CGI
应用程序可能成为别人非法进人
服务器系统的通道,有可能导致重要的资料被删除或外泄。CGI
应用程序主要的用途有以下几种:
创建可单击的图像缩小图;
制作动态HTML文挡。
如果一个CGI
脚本可以在每台计算机上做同样的事情;编写脚本就会变的很容易。不幸的是,CGI
脚本依赖于
服务器的
操作系统,因此,对于非UNIX服务器来说,Prl(UNIX下编写脚本的一个常用工具)脚本毫无用处。所以,你必须定制安装你的CGI
脚本。
大多数服务器都提供
CGI-BIN目录,但是这还不够。因为你应该拥有自己的CGI-BIN。这样,你就能运行自己的
脚本(而不是让自己的系统去适应已存在于系统上的脚本)。因此,你的提供商应安装CGI-BIN,且能够帮助你编写
脚本
ASP(Active Server Pages):
活动服务器页面,就是一个
编程环境,在其中,可以混合使用HTML、
脚本语言以及组件来创建服务器端功能强大的Internet
应用程序。如果你以前创建过一个站点,其中混合了HTML、
脚本语言以及组件,你就可以在其中加入ASP
程序代码。通过在HTML页面中加入
脚本命令,你可以创建一个HTML用户界面,并且,还可以通过使用组件包含一些
商业逻辑规则。组件可以被
脚本程序调用,也可以由其他的组件调用。
ASP的工作原理:
当在Web站点中融入ASP功能后,将发生以下事情:
1、用户调出站点内容,默认页面的扩展名是.asp。
4、ASP文件按照从上到下的顺序开始处理,执行
脚本命令,执行HTML页面内容。
因为
脚本是在
服务器端运行的,所以Web
服务器完成所有处理后,将标准的HTML页面送往
浏览器。这意味着,ASP只能在可以支持的
服务器上运行。让
脚本驻留在服务器端的另外一个益处是:用户不可能看到原始
脚本程序的代码,用户看到的,仅仅是最终产生的HTML内容。
PHP:Hypertext Preprocessor
PHP 是一种
服务器端的,嵌入HTML的
脚本语言。PHP区别其他像
客户端Javascript的地方是它的代码在
服务器端执行.PHP能做什么?
最低水平,PHP可以做任何其他CGI
程序所能做的事,例如收集表格数据,生成
动态页面内容,或者收发cookies.可能最强大,最有意义的特性是PHP支持大范围的
数据库.书写一个
支持数据库的Web 页面是难以置信的简单。
Adabas D InterBase Solid
dBase mSQL Sybase
Empress MySQL Velocis
FilePro Oracle Unix dbm
Informix PostgreSQL
PHP通过协议也支持与其他服务的"交谈",像IMAP,SNMP,NNTP,POP3,甚至是 HTTP. 你也可以打开晦涩的 网络接口和其他协议交互。
PHP的简要历史
1994年秋季,Rasmus Lerdorf 开始构思 PHP. 早期的非发行版本被用在他的主页上,以追踪谁在看他的在线简历. 1995年年初第一版本出台,当时PHP只被认为是个人主页开发工具.它由一个非常单纯的只能理解很少数特殊宏的分析引擎和 一些用在主页后端通用的工具组成.如留言簿,计数器和其他一些东西.这个分析器在1995年年中被重写并被命名为 PHP/FI 第二版. FI来自 Rasmus 写的另外一个包,用于解释 html 形式的数据.他结合了个人主页工具
脚本和形式解析器,并加 上mSQL支持.这样就产生 PHP/FI 了. PHP/FI以令人惊奇的步调成长,人们开始把自己的代码贡献给它。
很难给出它的硬统计表,但可以估计在1996年末,整个世界至少有15,000个网站在用PHP/FI.到1997年年中,这个数字已经超过50,000了. 而在此时PHP的发展也发生了变化.由Rasmus自己偏爱的和几个人开发的项目变成一个更有组织的团 体成就.Zeev Suraski和Andi Gutmans重写了解析器.这个新的解析器成为PHP版本3的基础.许多有用的代码从PHP/FI 继承到PHP3,并且很多是完全重写的。
今天(1999年年中)不管是PHP/FI或PHP3与很多商业产品捆绑在一块,例如C2级强度的Web
服务器和
红帽子Linux. 根据NetCraft提供的数据推断,保守估计全世界应用PHP的网站已超过150,000个.由此看来,它比在因特网上运行Netscape 的旗舰企业服务器的站点还多。