JSP网络编程从基础到实践(第3版)(4)
1.2 B/S模式技术介绍
B/S模式下的编程技术有许多种,这里列出比较常见的几种,以供对比分析。
1.2.1 CGI
CGI(Common Gateway Interface,通用网关接口)技术的原理如图1-3所示。
Web
浏览器
Web
服务器
CGI
数据库
服务器

图1-3 CGI技术原理框架图
首先,客户端(即Web浏览器)根据某资源的URL(Uniform Resource Locator,统一资源定位器)向Web服务器提出请求;然后,Web服务器的HTTP Daemon(守护进程)将此请求的参数通过标准输入stdin和环境变量传递给指定的CGI程序,并启动此应用程序进行处理,如要存取数据库服务器上数据库的数据,则向数据库服务器发出处理请求,由数据库服务器将执行结果返回给CGI程序;最后,CGI程序把处理结果通过标准输出stdout返回给HTTP Daemon进程,再由HTTP Daemon进程返回给客户端,通过浏览器解析执行,将最终结果在用户面上显示。
CGI允许Web服务器运行外部应用程序,通过外部程序来访问数据库等一些外部资源,并产生HTML文档给浏览器。但每次请求CGI程序都要重新启动程序,影响了响应的速度,且CGI程序不能被多个客户请求共享,又影响了各种资源的使用效率。为了克服CGI的这些缺点,一些Web服务器厂商开发出了专用的API(Applications Program Interface,应用程序接口),这样就允许程序员编写程序来扩展服务器的功能。API相对于CGI与Web服务器的结合更加紧密,占用的资源较少,提高了运行的效率,其安全性与维护性更好。但是开发API应用程序比开发CGI应用程序复杂得多,要求程序员掌握更多的计算机软件知识,且各种API之间的兼容性不好,业界没有一个统一的标准,使得API程序只能工作在专用的Web服务器与操作系统之上。
编写CGI的程序设计语言有许多种,常用的有C、Perl、Visual C+http://book.itpub.net/tushu/book/2009/0801/+等,由于对程序员的要求较高、且编写与调试比其他的编程技术困难,故近年来在基于B/S的信息系统工程实践中很少采用。
前言
序
译序
