Web数据库访问原理

北京网站设计公司:一般实现web数据库系统的连接和应用可采取两种方法:一种是在web服务器端提供中间件来连接weh服务器和数据库服务器,另一种是把应用程序下载到客户端并在客户端直接访问数据库。中间件负责管理web服务器和数据库服务器之间的通信并提供应用程序服务,它能够直接调用外部程序或脚本代码来访问数据库,因此可以提供与数据库相关的动态html页面,或执行用户查询,并将查询结果格式化成html页面,通过weh服务器返回给web浏览器。最基本的中间件技术有公共网关接口(common gareway interfaee,cgi)和应用程序接口(appliearion programmer interfaee,api)两种。
web数据库技术采用三层或多层体系结构,前端采用基于瘦客户机的浏览器技术,通过web服务器及中间件访问数据库,如图5-19所示。
目前,主要应用的web数据库访问技术包括以下几个方面。
1.公共网关接口技术cgi
cgi是web服务器运行时外部程序的规范,按照cgi编写的程序可以扩展服务器的功能,完成服务器本身不能完成的工作,外部程序执行时可以生成html文档,并将文档返回web服务器。cgi应用程序能够与浏览器进行交互作用,还可以通过数据库的api与数据库服务器等外部数据源进行通信。如一个cgi程序可以从数据库服务器中获取数据,然后格式化为html文档后发送给浏览器,也可以将从浏览器获得的数据存人数据库。几乎所有的服务器软件都支持cgi,开发者可以使用任何一种web服务器内置语言编写cgi,其中包括流行的c、c++、visual basie和delphi等。按照应用环境的不同,cgi又可以分为标准cgi和间接cci。
标准cgi使用命令行参数或环境变量来表示服务器的详细请求,服务器与浏览器间的通信采用标准输人输出方式。当服务器接收浏览器发来的cgi请求时,服务器对该请求进行分析,设置所需的环境变量或命令参数,然后创建一个子进程启动cgi程序,cgi执行完毕后,使用标准输出将执行结果返回给服务器。cgi的输出可以有许多类型,例如,html文档、图像、纯文本或声音文件等,它还可以输出指向其他文档的链接。
间接cgi又称为缓冲cgi,或者wincgi。在cgi程序(不支持标准输人输出)和cgi接口之间插人一个缓冲程序,缓冲程序与cgi接口间用标准输人输出进行通信。这样。cgi程序采用缓冲区(临时文件)而不是标准输人/输出来进行数据通信。当服务器接收到浏览器的请求时,创建一个子进程启动缓冲程序,缓冲子进程与服务器进行通信。它通过标准输人阵俞出、命令行参数和环境变量获得有关数据,并将这些数据保存在一输人缓冲区中。然后缓冲子进程再创建一个子进程启动cgi程序,cgi程序读取输人缓冲区的内容,处理浏览器的请求,将输出的内容保存在输出缓冲区中。缓冲进程通过命令行参数或环境变量等方式,传送输人缓冲区和输出缓冲区的地址(或临时文件)到cgi子进程。缓冲进程与cgi子进程保持同步以监测cgi程序的执行状态。当缓冲进程得到cgi子进程的输出时,设置有关环境并终止该子进程,然后通过标准输出与服务通信,通过服务器cgi程序的输出结果返回给浏览器。相似地,服务器进程与缓外进程也应保持同步以监测缓冲进程执行的状态。间接cgi最明显的特点是服务器与cgi程序间的数据交换是通过缓冲区而不是标准输人输出进行的。
可以看出,cgi程序应用是作为一个独立的外部应用来运行的,与服务器上的其他进程竞争处理器资源,这将导致运行速度减慢。而且,用cgi开发支持web应用程序也是一个比较困难的过程。开发人员不仅要掌握html语言,还要掌握低级编程语言。cgi的另外一个众所周知的缺陷是不提供状态管理功能,如果没有状态管理,那么浏览器的每一次请求,都需要一个连接的建立与释放的过程,效率较低。另外,必须用某个特定数据库服务器的专用sql语言来手工编写数据库接口,其移植性也不好。
2.专用api
目前生产web服务器和数据库服务器的各大公司纷纷推出各自专用的api进行web与数据库的连接。netscape公司推出了nsapi。微软公司推出了用于连接其weh服务器iis与数据库的isapi。oracle使用标准的wel)公共网关接口,将其pl/sql开发环境与web连接在一起,使用oracle web server,通过weh客户机可直接调用oracle的存储过程来生成动态的web文档。sybase的web .sql把web服务器和sybase sql server及其他的数据库环境(通过omni connect)集成在一起,在使用cgi与web服务器进行协作的同时,还可以使用netseape的nsapi直接与web服务器连接。运用informix的webdatabade模块就无须再进行传统的cgi编程,它将所有的web结点内容和应用逻辑集中存储在服务器中,可以很容易地建立动态的、多媒体功能丰富的web应用。
3.服务器端脚本编程技术
当前较流行的几种有代表性的服务器端的脚本编程技术是asp(active server page)、php(personal home page)和jsp(java server pages)。
asp是微软公司于1996年11月推出的web应用程序开发技术。在有关文档中asp被描述为:一个服务器端的脚本环境,可以生成和运行动态的、交互的、高性能的weh服务器应用程序。asp是目前公认的建立 windows nt动态站点最好的工具。它与ado(active data object)的充分结合,提供了强大的数据库访问功能,成为了进行网上数据库管理的重要手段。
asp内含iis当中,提供一个服务器端(server-side)的seripting环境。站点服务器会自动将asp的程序码,解释为标准html格式的主页内容,再送到用户端的浏览器上显示出来。用户端只要使用常规可执行html码的浏览器,即可浏览。
asp虽然具有强大优势,但它在安全性上仍存在一些问题,例如,可能引起nt内存泄露,以及最初只能在windows 9x/nt/2000环境下运行等。对于前者,微软公司已经推出了补丁程序,以弥补它的不足;而对于后者,已经有人开发了在非微软的wel)服务器上支持asp语言的软件,如apache_asp、chilisoft asp等,可以在red hat、suse等操作系统下运行asp脚本。数据库的支持包含了oracle、sybase、mysql等。
php是一种基于服务器端来创建动态网页的嵌人式脚本语言。当一个访问者打开主页时,服务端便执行php的命令并将执行结果发送至访问者的浏览器中,这类似于asp,然而php和asp不同之处在于php开放源码和跨越平台,php可以远行在windows nt和多种版本的unix上。它大量地借用c、java和perl语言的语法,并结合php自己的特性,较web开发者能够快速地写出动态页面。它支持目前绝大多数数据库,是开发企业网站的利器。php是完全免费的,使用者可以自由下载,甚至可以不受限制地获得源代码,加进自己需要的特色。
jsp是sun公司倡导的、许多公司参与一起建立的一种新一代网站开发语言。它完全解决了目前asp、php的通病-脚本级执行。jsp可以在serveriet和javabean的支持下,完成功能强大的站点程序。
asp、php和jsp各有所长,学习者可以选择某种适合自己的技术来进一步学习。
上一个:网站设计,用户体验UX是基于理由而不是设计的基础
下一个:北京网站建设公司要美化页面布局提高网站档次
盖州网站建设,盖州做网站,盖州网站设计