公共网关接口(CGI)技术
CGI(CommonGatewayInterface)是一个用于定义Web服务器与外部程序之间通信方式的标准,使得外部程序能生成HTML文档、图像或者其他内容,客户端的HTML网页也能通过该接口同服务器进行动态交互。可以说CGI解决了静态页面的两个大问题:-是可以动态地将数据和页面模板组合在一起,然后通过Web服务器发给客户端,这样就实现了Web服务器的动态网页功能;二是实现了客户端向Web服务器的数据传送和处理。
CGI程序一般是可执行程序,也可以是解释性语言的脚本(如Perl)或外壳程序(Unix中的Shell程序)。其调用方式通常有两种一是在浏览器.上通过URL地址直接调用,如另一种方式是通过交互式主页里的FORM栏调用,通常都是用户在填完一张输入信息主页后按“确认”按钮启动CGI程序。CGI工作的主要流程是:①一个用户请求激活一个CGI进程:②CGI进程将交互主页里用户输入信息提取出来;③将用户输入的信息传给服务器主机应用程序(如数据库查询);④将服务器处理结果通过HTML文件返回给用户;⑤CGI进程结束。
CGI的跨平台性能极佳,几乎可以在任何操作系统上实现,如DOS、Windows、UNIX、Linux、OS/2、Macintosh等,而且所有的浏览器也都支持CGI。实现CGI的编.程语言也有很多选择,可以用任何编译语言来编写,也可以写Perl脚本,同时在Web服务器中定义Perl脚本,用Perl解释器进行解释运行,在Unix和Linux中还可以直接编写Shell脚本,同时指定外壳解释环境,如bsh或ksh等。
CGI进程和www服务器进程各自占据着不同的进程资源,而且一般一个CGI进.程只能处理一个用户请求。这样,每有一个用户请求,都会激活一个CGI进程;当用户请求数量非常多时,会大量挤占系统的资源,如内存、CPU时间等,造成效率低下。鉴于CGI的这些缺陷,微软和网景公司分别开发了专用的Web服务器API(应用程序接口),以使后端应用的执行比基于CGI的应用程序更好。NetscapeServerAPI(NSAPI)和InternetServerAPI(ISAPI)均允许附加应用程序作为Web服务器软件的扩充部分,例如动态连接库(DLL)来执行,因此能够得到更紧密的集成和更好的性能。然而,作为专用接口,NSAPI和ISAPI只适用于它们各自的平台。
- 上一篇:建设一个优秀的网站需要注意什
- 下一篇:服务器端内嵌(SSI)

