Apache在服务器端的应用

Apache是目前最流行的Web应用服务器,占据了互联网应用服务器70%以上的份额。它免费、稳定且性能卓越,是我们在服务器端运行的首选。
Web server是在互联网上运行的一种服务器端软件。它用来处理来自客户端(访问者的浏览器就是客户端的一种)的请求,客户端可能使用microsoft公司的internet explorer(浏览器),也有可能是netscape浏览器。Web server处理请求后返回一些数据,这些数据通常是某种格式的页面,并且可能含有文本和图像。客户端浏览器把这些数据解释成为访问者能看明白的形式,展现在访问者的计算机屏幕上。从概念上来讲,web server就是服务器上运行的一些非常简单的程序,他们等待来自客户端的请求并对其进行处理。Web server跟浏览器或者其他客户端进行通信时使用超文本传输协议(http)。http是用于发送和处理请求的一种标准协议,有了它之后,各类客户端服务器进行通信就不存在兼容性的问题了。

存取数据库的对象

虽然有了ODBC标准,可以简化一些程序设计工作,但是在实际的访问数据库过程中,ODBC还是显得有些复杂,因而微软公司又提供了许多存取数据库对象来简化访问数据库的程序设计,这些存取数据库对象都可以使用ODBC。最常使用的存取数据库对象包括:DAO、RDO和ADO。

DAO数据访问对象是第一个面向对象的接口,它实际上包含了microsoft jet数据库引擎,这是一个由access所使用的引擎,并允许应用程序开发者通过ODBC对象直接连接到其他数据库一样,直接连接到access表,当然也可以访问SQL Server数据库。DAO最适用于单系统应用程序或小范围本地分布使用。

Apache服务器的应用

apache web服务器是最流行的web服务器。像Linux、PHP和MySQL一样,它也是开放式资源项目。Apache在UNIX环境中用得最好,但也可以很好的在windows下运行。
在认识apache之前,我们要先了解一下web服务器,web服务器是运行在操作系统的顶端,监听web上的某人发来的请求,响应这些要求,提供相应的web页。那么apache web服务器是最流行的web服务器。像Linux、PHP和MySQL一样,它也是开放式资源项目。Apache在UNIX环境中用得最好,但也可以很好的在windows下运行。Apache利用第三方模块,因为它是开放式资源,所以任何比较熟练的人都可以编写代码、扩展apache的功能,PHP大多数情况下作为apache扩展运行,被称为apache模块。

使用ASP访问数据库

网站建设编码时数据库的访问用到SQL语言,它是当前各种数据库的标准查询语言。SQL语言拥有自己的语法标准,并且能够访问数据库中得数据表。对于SQL语言而言,不管当前操作的数据库部结构如何,它只是一个数据表的集合,其中包含许许多多的行和列。作为一个数据库开发人员,必须熟悉SQL语言,因为它是操作数据库的基础。当前,SQL语言的标准还处于不断变化中,并且在不同的数据库产品中,也会由不同的SQL语言实现,具体的SQL语法也各不相同,因而在开发具体的数据库产品时,需要参考相应的产品帮助。

在数据库的操作过程中我们经常用到SQL语言。利用ASP访问数据库时,ASP访问SQL Server数据库建立web站点。浏览器首先向web服务器发出要访问一个页面的请求,这里使用的web服务器是微软的IIS,这个web服务器对ASP页面程序提供了最佳支持。Web服务器接到请求后,把需要的ASP程序读入内存,解释并执行ASP程序代码。

数据库中的表和视图

表是由列和行组成的一种简单的数据库对象,可以用来存储数据。在数据库中可以有多达上亿的表,每个表可以有1024列,唯一限制数据库行数的因素是用来存储数据库的磁盘空间。在SQL Server的表中每行的长度最多是8060字节。表中没列只能包含一种数据类型。SQL Serve支持两种类型的表:永久表和临时表。

永久表在数据库中建立后一直存在,直到被删除。通常,这些表用来存储永久数据,例如web站点注册用户的信息、站点页面中得各种内容等。另一种就是临时表,通常由应用程序创建用来存储临时数据,ASP程序可以使用数据库的存储过程来建立临时表。有两种类型的临时表:一种是局部临时表,该表由一个用户建立并且只能供这个用户访问。另一种临是表是全局临时表,这类表由一名用户建立而本系统中的每个用户都可访问。这些表建在tempdb数据库里。局部临时表在创建它的用户退出系统时被清除,全局临时表在创建它的用户退出系统时被删除,而那些正引用它的用户也将退出引用。临时表创建时用前缀“#”表示局部临时表,用“##”表示全局临时表。

数据库中索引的应用

索引是一种特殊类型的数据库对象,与表直接相关。索引主要是用来提高访问表中数据的速度,并能使一些数据完整性问题得到强制实现,如表中行的唯一性。索引包含了由表中至少一列所构成的键值。这些键值使得SQL Server能很快地指向表中行而无须扫描全表。如果创建一个没有建立索引的表,SQL Server在存储数据到表中时将不会有什么特别的顺序。SQL Server中可以建立两种类型的索引。一种索引是簇索引,在簇索引中,SQL Server按其被索引的顺序存储数据。例如:在一个包含注册用户名称的表中,如果按注册用户名称索引,SQL Server就会依字母顺序来存储注册用户名称。如果这个键值是基于数值类型列建立的,SQL Server将按数值大小顺序来存储数据。这类索引对查找指定行或指定范围的行是非常有用的。只有当表中有了簇索引后,表中的数据才可以按某种顺序来存储。

使用PHP的几大优点

在编写web程序时,所有的语言几乎都要完成同样的事情:和关系数据库交互,使用文件系统,和web服务器交互。判断那种语言最好,这很少和语言不能执行某种操作有关,通常选择能用最少的精力、最快的速度完成所需功能的语言。

一、快速性和易用性。当比较编程语言的速度时,实际上只有3件事情是能确定的,首先,用C编写的应用程序最快。其次,用C编写的代码非常困难,要比目前提到过的其他任何语言话费的时间都长。从我们掌握的内容看,可以说PHP不会比其他任何语言的速度慢。除了不需要选择语言外,PHP功能非常强大、结构好、便于使用。我们相信PHP的语法比ASP和JSP好,比ColdFusion容易掌握,不如学Perl那么困难。

设计原则和错误处理

网站建设中当开始为.NET编写组件的时候,现行的一些设计准则仍然能够使用。然而,.NET Framework毕竟与COM和COM+组件不同,过去的一些设计原则现在只能以不同的方法来执行。过去根据使用语言的不同,甚至会有不同的准则。现在,在.NET中这些准则得到了统一。使用这些设计准则的另一个关键之处在于,Microsoft在创建系统架构本身,连同SDK中的所有范例时,都已经遵守了这些原则。

CLR环境的特点之一是能够持续有效地对包括结构化异常在内的各种错误进行处理。这个特点对CLR环境支持的所有语言都是有效的,因而应该在任何可能的情况下使用。以前使用错误代码,检验返回值,甚至用On Error Goto语句的方法,已经被捕捉异常,并在异常处进行错误处理的方法所替代。

跨语言继承

在过去,如果用一种语言子类编写组件,然后再用另一种语言子类来扩展该组件,这是非常困难的,或者说事实上是几乎不可能的。用C++编写一个类,再用VB来继承它以创建一个新的对象,像这样的事是绝对不可能发生的。如果没有父对象的或者至少头文件的源代码,我们同样也没办法使用一个已编译成二进制的组件(即使这组件是用同一种语言编写的)并从中派生出一个新的对象。

不过,由于有了CLR,我们就可以解决上述问题。与.NET类相关的元数据提供了足够多的信息(甚至是以已编译的形式),使我们可以从现有的类中派生出新类。CLR可以让我们做的另一件事情是一种不同的语言派生一个新类。过去要派生一个新类得拥有基类的源代码才行,而且编写新类所用的语言必须与基类所使用的语言相同。但是现在所有的CLR语言都编译成中间语言,所以用户可以使用任何一种CLR语言派生新类。

装配件和版本

Win32体系结构中当前有两个问题,被称之为DLL Hell。在DLL Hell中,没有控件实体负责安装到系统的所有DLL文件。关于COM DLL的信息保存在注册表中,这些信息会很容易地被别的应用程序改写。对于非COM DLL的DLL,在注册表中没有任何对应于它的项。应用程序的安装程序也可以改写已存在的DLL。这样做会严重破坏一些现有的应用程序,这些应用程序调用方法时依靠特定DLL执行具体的函数。

Win32有一个特殊的问题,即在组件间没有系统级的版本规则实现。这个问题只好依靠良好的编程习惯去解决,即一旦发布了接口,它就永远不能再改变了——但在操作系统中又没有什么可以明确预防这一点。另一个问题是应用程序没有一个通用的方式来说明它需要特定组件的版本。只好由开发人员在将DLL调入应用程序前对DLL版本进行检验。如果没有进行检验,应用程序发现了不同的版本,那么它所依靠的代码可能已不存在了,或者说它可能不执行应用程序所期望的函数。为了改变这些情况,windows添加了系统文件保护。这是一个OS功能,能够防止任何的安装程序改写任何系统DLL。