MENU 服务 案例
网站建设-网站设计-北京网站建设-高端网站制作公司-尚品中国
我们通过拥抱变化创造
360°的品牌价值__
简体
简体中文 English

尚品签约Charles River | 维通利华网站建设项目

类型:项目动态 了解更多

Web数据库访问原理

来源:尚品中国| 类型:网站百科| 时间:2012-08-28
北京网站设计公司尚品中国:一般实现Web数据库系统的连接和应用可采取两种方法:一种是在Web服务器端提供中间件来连接Weh服务器和数据库服务器,另一种是把应用程序下载到客户端并在客户端直接访问数据库。中间件负责管理Web服务器和数据库服务器之间的通信并提供应用程序服务,它能够直接调用外部程序或脚本代码来访问数据库,因此可以提供与数据库相关的动态HTML页面,或执行用户查询,并将查询结果格式化成HTML页面,通过Weh服务器返回给web浏览器。最基本的中间件技术有公共网关接口(Common Gareway Interfaee,CGI)和应用程序接口(Appliearion programmer Interfaee,ApI)两种。

Web数据库技术采用三层或多层体系结构,前端采用基于瘦客户机的浏览器技术,通过Web服务器及中间件访问数据库,如图5-19所示。
Web数据库技术

目前,主要应用的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各有所长,学习者可以选择某种适合自己的技术来进一步学习。
本文发布于UEO营销型网站建设公司尚品中国http://www.sino-web.net/
来源声明:本文章系尚品中国编辑原创或采编整理,如需转载请注明来自尚品中国。以上内容部分(包含图片、文字)来源于网络,如有侵权,请及时与本站联系(010-60259772)。
TAG标签:

如果您的网站可以增加转化次数并提高客户满意度,该怎么办?

预约专业咨询顾问沟通!

*尚品专业顾问将尽快与您联系

免责声明

非常感谢您访问我们的网站。在您使用本网站之前,请您仔细阅读本声明的所有条款。

1、本站部分内容来源自网络,涉及到的部分文章和图片版权属于原作者,本站转载仅供大家学习和交流,切勿用于任何商业活动。

2、本站不承担用户因使用这些资源对自己和他人造成任何形式的损失或伤害。

3、本声明未涉及的问题参见国家有关法律法规,当本声明与国家法律法规冲突时,以国家法律法规为准。

4、如果侵害了您的合法权益,请您及时与我们,我们会在第一时间删除相关内容!

联系方式:010-60259772
电子邮件:394588593@qq.com

现在就与专业咨询顾问沟通!

  • 全国服务热线

    400-700-4979

  • 北京服务热线

    010-60259772

信息保护中请放心填写
在线咨询

免责声明

非常感谢您访问我们的网站。在您使用本网站之前,请您仔细阅读本声明的所有条款。

1、本站部分内容来源自网络,涉及到的部分文章和图片版权属于原作者,本站转载仅供大家学习和交流,切勿用于任何商业活动。

2、本站不承担用户因使用这些资源对自己和他人造成任何形式的损失或伤害。

3、本声明未涉及的问题参见国家有关法律法规,当本声明与国家法律法规冲突时,以国家法律法规为准。

4、如果侵害了您的合法权益,请您及时与我们,我们会在第一时间删除相关内容!

联系方式:010-60259772
电子邮件:394588593@qq.com