任务描述
网站后台开发包括网站开发语言的选择、数据库的选择等。网站后台是动态网站的核心。它是整个网站功能实现的基础。一个网站后台的好坏,不仅影响着网站的整体功能,而且对整个网站的安全也有着非常重要的意义。所以,设计一个功能强大、安全性较高的网站后台,是整个网站建设中最为关键的一步。本任务从网站后台开发语言选择、网站数据库选择等方面对网站后台技术进行介绍。
1.常用开发语言介绍
常用的网站开发语言有ASP、PHP、JSP和ASP.NET。这4种语言各有特点,下面分别进行介绍。
(1)ASP
更精确地说,动态服务器页面(Active Server Page,ASP)是一个中间件。这个中间件将Web上的请求转入解释器中,在解释器中将所有的ASP的Script进行分析,然后执行。此时可以在这个中间件中创建一个新的COM对象,对这个对象中的属性和方法进行操作和调用,再通过这些COM组件完成更多的工作。所以,ASP的强大不在于它的VBScript,而在于它后台的COM组件。这些组件无限地扩充了ASP的能力。
ASP的优点如下。
1)简单易学。服务器脚本用的是VBScript,具有简单易学的特点。
2)安装使用方便。只要装好Windows 2003操作系统和IIS就可以使用ASP,无须其他配置。
3)开发工具可任意选择。只要使用一般的文书编辑程序,如Windows记事本就可以编辑。当然,其他网页开发工具,如Dreamweaver、FrontPage Express等也都可以使用;可以根据需要来选择合适的开发工具。
ASP的缺点如下。
1)Windows本身的所有问题都会一成不变地累加到它的身上。ASP的安全性、稳定性、跨平台性(Win2K已经不再支持Alpha)都会因为与NT的捆绑而显现出来。
2)ASP由于使用了COM组件所以变得十分强大。但是这样的强大由于Windows NT系统最初的设计问题会引发大量的安全问题。只要在这样的组件或是操作中一不小心,外部攻击就可以取得相当高的权限从而导致网站瘫痪或者数据丢失。
3)由于ASP还是一种Script语言,所以除了大量使用组件外,没有其他办法提高其工作效率。它必须面对即时编译的时间考验,同时还不知其背后的组件会是怎样的状况。
4)无法实现跨操作系统的应用。当然这也是微软制造商的原因,只有这样才能发挥ASP的最佳能力。
5)还无法完全实现一些企业级的功能:完全的集群和负载均衡。
(2)PHP
超文本预处理器(Hypertext Preprocessor,PHP)是一种HTML内嵌式的语言(类似于IIS上的ASP)。而PHP独特的语法混合了C、Java、Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。
PHP能够支持诸多数据库,如MS SQL Server、MySQL、Sybase、Oracle等。
它与HTML语言有非常好的兼容性,使用者可以直接在脚本代码中加入HTML标签或者在HTML标签中加入脚本代码,从而更好地实现页面控制。PHP提供了标准的数据库接口,数据库连接方便、兼容性强、扩展性强,可以实现面向对象编程。
PHP的优点如下。
1)PHP是一种能快速学习、跨平台、有良好数据库交互能力的开发语言。语法简单、书写容易,现在市面上也有大量的书可供学习,同时Internet上也有大量的代码可以共享。对于一个想学些“高深的UNIX”下的开发的初学者来说,是一个绝好的入手点。
2)PHP与Apache及其他扩展库结合紧密。PHP与Apache可以以静态编译的方式结合起来,而与其他的扩展库也可以用同样的方式结合(除了Windows平台)。这种方式的最大好处就是最大化地利用了CPU和内存,同时极为有效地利用了Apache的高性能吞吐能力。同时,外部的扩展也是静态连编,从而达到了最快的运行速度。由于与数据库的接口也使用这种方式,所以使用本地化的调用。这使数据库发挥了最佳效能。
3)PHP具有良好的安全性。由于PHP本身的代码开放,它的代码在许多工程师手中进行了检测。同时,它与Apache编译在一起的方式也可以使它具有灵活的安全设定。所以到现在为止,PHP具有公认的良好的安全性能。
PHP的缺点如下。
1)支持的数据库变化较大。由于PHP的所有扩展接口都是独立团队开发完成的,同时在开发时为了形成相应数据的个性化操作,所以PHP虽然支持许多数据库,可是针对每种数据库的开发语言都完全不同。这样形成的针对一种数据库的开发工作,在数据库升级后需要开发人员进行几乎全部代码的更改。而为了让应用支持更多种数据库,就需要开发人员将同样的数据库操作使用不同的代码写出n种代码库,程序员的工作量大大增加。
2)安装复杂。由于PHP的每一种扩充模块并不完全由PHP本身来完成,需要许多外部的应用库,如图形需要GD库、LDAP需要LDAP库。这样在安装完成相应的应用后,再联编进PHP中。只有在这些环境下才能方便地编译对应的扩展库。
3)缺少企业级的支持。没有组件的支持,所有的扩充就只能依靠PHP开发组所给出的接口,事实上这样的接口还不够用,难以同时将集群、应用服务器这样的特性加入系统中。而一个大型的站点或是一个企业级的应用是需要这样的支持的。
注意
在PHP 4.0以后版本加入了对Servlet/Javabean的支持,也许这样的支持会在以后的版本中加强,并成为PHP以后的企业级支持的起点。
4)缺少正规的商业支持。这也是自由软件的一项缺点。国内PHP的开发人员正在快速增加,相信在不久的将来,这样的支持会多起来。
5)无法实现商品化应用的开发。由于PHP没有任何编译性的开发工作,所有的开发都是基于脚本技术来完成的,因此所有的源代码都无法编译,它的应用只能是自己或是内部使用,无法实现商品化。
(3)JSP
Java服务器页面(Java Server Pages,JSP)由HTML代码和嵌入其中的Java代码组成。服务器在页面被客户端请求后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet是JSP的技术基础,而且大型Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用、完全面向对象、具有平台无关性且安全可靠、主要面向Internet的所有特点。
JSP的优点如下。
1)一次编写,各处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。
2)系统的多平台支持。JSP页面基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP、PHP的局限性是显而易见的。
3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,再到多台Application进行事务处理、消息处理。从一台服务器到无数台服务器,Java显示了强大的生命力。
4)多样化和功能强大的开发工具的支持。这一点与ASP很相似,Java已经有许多非常优秀的开发工具,可以免费得到,并且其中许多已经顺利地运行于多种平台上。
JSP的缺点如下。
1)与ASP一样,Java的一些优势正是它致命的问题所在。正是由于跨平台的功能,极度的伸缩能力,产品的复杂性极大地增加了。
2)Java的运行速度是用class常驻内存来完成的。另外,它还需要硬盘空间来存储一系列的.java文件和.class文件以及对应的版本文件。
(4)ASP.NET
ASP.NET的前身是ASP技术,ASP.NET不仅仅只是ASP的一个简单升级,它更为我们提供了一个全新而强大的服务器控件结构。从外观上看,ASP.NET和ASP是相近的,但是从本质上是完全不同的。在开发语言上,ASP.NET抛弃了VBSCRIPT和JSCRIPT,而使用.NET Framework所支持的VB.NET和C#.NET等语言作为其开发语言,这些语言生成的网页在后台被转换成了类并编译成了一个DLL。由于ASP.NET是编译执行的,所以它比ASP拥有了更高的效率。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。(www.daowen.com)
ASP.NET的优点如下。
1)可管理性:ASP.NET使用基于文本的、分级的配置系统,简化了将设置应用于服务器环境和Web应用程序的工作。因为配置信息是存储为纯文本的,因此可以在没有本地管理工具的帮助下应用新的设置。注意,配置文件的任何变化都可以自动检测到并应用于应用程序。
2)易于部署:通过简单地将必要的文件复制到服务器上,ASP.NET应用程序即可以部署到该服务器上。不需要重新启动服务器,甚至在部署或替换运行的已编译代码时也不需要重新启动。
3)扩展性和可用性:ASP.NET被设计成可扩展的、具有特别专有的功能来提高群集的、多处理器环境的性能。
4)跟踪和调试:ASP.NET提供了跟踪服务,该服务可在应用程序级别和页面级别调试过程中启用。在开发和应用程序处于生产状态时,ASP.NET支持使用.NET Framework调试工具进行本地和远程调试。当应用程序处于生产状态时,跟踪语句能够留在产品代码中而不会影响性能。
5)与.NET Framework集成:因为ASP.NET是.NET Framework的一部分,整个平台的功能和灵活性对Web应用程序都是可用的。也可从Web上流畅地访问.NET类库以及消息和数据访问解决方案。ASP.NET是独立于语言之外的,所以开发人员能选择最适于应用程序的语言。
ASP.NET的缺点如下。
1)数据库的连接复杂。
2)ASP.NET在内存使用和执行时间方面耗费非常大,这大部分归因于较长的代码路径。
3)ASP.NET的可扩展性,使它的内存使用率还可能成为Web服务器上的一个问题。
4)无法跨平台使用。ASP.NET的服务器需要在Windows系统安装.NET Framework,且.NET只能放在Windows环境里来运行。
2.网站开发语言选择
常用的网站开发语言有ASP、PHP、JSP和ASP.NET,各有特点。对于一些复杂型和功能型网站建设来说,开发语言的选择是非常重要的一步。这一步的好坏将直接影响到以后网站程序的升级以及功能的扩展。一个网站开发语言的选择,主要考虑以下几个方面。
(1)易学易用性
很多网站入门者在刚开始建设网站时,首先考虑的是技术的简单性。一些比较入门的技术就被一些新手广泛使用。
ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和Visual Basic类似,可以像SSI(Server Side Include)那样将后台脚本代码内嵌到HTML页面中。ASP技术简单易用,入门容易,适合初学者使用。
PHP简单易学,大大地降低了初学者的门槛,这是它平民化的一个很重要的表现。因此也受到了一些非专业人士的青睐,让不少非计算机人士也加入进来,使这个语言所形成的社区非常多。因为专业彼此不同,所形成的观点和想法就会更加丰富。也正是因为这样才使PHP在各方面各个行业的应用更为广泛。
JSP对于网站开发来讲不像PHP和ASP那样易学易用,支持Java的主机也少于支持PHP的主机。这在一定程度上限制了Java技术在网站上的发展。不过从企业软件应用上来讲,MVC还是拥有相当大的优势的。虽然其配置和部署相对其他脚本语言来说要复杂一些,但对于跨平台的中大型企业应用系统来讲,基于Java技术的MVC架构几乎成为唯一的选择。
ASP.NET是一种服务器端脚本技术,可以使(嵌入网页中的)脚本由Internet服务器执行。ASP.NET更容易配置和开发,ASP.NET使运行一些很平常的任务如表单的提交客户端的身份验证、分布系统和网站配置变得非常简单。微软为ASP.NET设计了这样一些策略:易于写出结构清晰的代码、代码易于重用和共享、可用编译类语言编写等,目的是让程序员更容易开发出Web应用,满足计算向Web转移的战略需要。现在做网站大部分都是ASP.NET或JSP的。ASP.NET容易上手,比较普及,但是平台单一。
(2)执行速度
任何网站的设计都要考虑到它的执行速度及效率。执行速度非常慢的网站是没有人气的。各种技术的性能比较见表3-1。
表3-1 各种技术的性能比较
JSP同样是实现动态网页的一个工具。由于它的脚本语言是Java,所以继承了Java的诸多优点。与ASP相比,可以说ASP和JSP基本不是一个档次上的,但ASP.NET和Java却是可以抗衡的。
从运行速度、运行开销、运行平台、扩展性、安全性、函数支持、厂商支持、对XML的支持等方面来看,ASP都不是JSP的对手。COM组件的复杂性使编程实现有一定的难度。而JAVABeans和Java的结合却是天衣无缝的。
ASP.NET是将基于通用语言的程序在服务器上运行。不像以前的ASP那样即时解释程序,而是将程序在服务器端首次运行时进行编译,这样的执行效果,当然比一条一条地解释强很多。
ASP.NET已经被刻意设计成一种可以用于多处理器的开发工具。它在多处理器的环境下用特殊的无缝连接技术,将在很大程度上提高运行速度。即使现在的ASP.NET应用软件是为一个处理器开发的,将来多处理器运行时不需要任何改变就能提高其效能。
(3)主机空间
做好网站空间的选择也是很重要的。就目前大多数空间来说,ASP和PHP的空间最便宜,而且使用起来最简单。ASP.NET空间相对来说价格高一些。JSP的空间一般都是用Linux作为服务器系统的,相比之下管理比较麻烦。目前Linux方面的人才也比较少,所以JSP的空间是最贵的。单纯从空间价格上来说,ASP和PHP是最佳的选择,ASP.NET次之。
(4)安全性
在安全性上,JSP安全性最高,其次是ASP.NET和PHP,最后是ASP。
由于ASP程序采用非编译性语言,大大降低了程序源代码的安全性。如果黑客侵入站点,就可以获得ASP源代码;同时对于租用服务器的用户,因个别服务器出租商的职业道德问题,也会造成ASP应用程序源代码的泄露。
每种语言,都有其优缺点。对于一个网站到底选择哪一种语言,需冷静客观地看待这个问题。第一,存在就有其合理性,既然有这些语言,肯定有它们的用处;第二,它们之间必然各有特点,有各自的优势和缺陷;第三,好坏是相对的,根据自己的需要来选择。事实就是这样的,需要考虑网站的规模有多大、制作公司擅长什么、网站预算有多少等。
选择ASP、PHP、JSP还是ASP.NET将最终取决于应用程序的需要,以及运行程序的系统环境。开发人员对于相似编程语言或范例的熟悉程度同样可以作为选择的因素。例如,使用ASP.NET为一个Windows服务器创建一个单页面的表单邮件应用程序似乎有些大材小用,但对于ASP来说这是极佳的应用环境。如果一个站点需要同Linux Apache服务器上的MySQL数据库连接,那么使用ASP或者ASP.NET则会显得力不从心。如果能够提前仔细考虑用户的个人要求,那么开发人员在这些相互竞争的技术中进行选择会容易一些。
3.网站数据库选择
随着各种网络应用的出现以及电子商务的发展,不少企业和网站设计者在动态网站建设制作过程中,会对数据库的概念产生迷惑或误解。如何选择合适的数据库系统,是动态网站建设的关键。
常用的数据库一般有以下4种:Access、SQL Server、MySQL和Oracle。
Access作为Microsoft Ofice组件之一是在Windows环境下很流行的桌面型数据库管理系统。使用Microsoft Access无须编写任何代码,只需通过直观的可视化操作就可以完成大部分的数据管理任务。不仅易于使用,而且界面友好,因此被用户广泛采用。使用Access的时候不需要数据库管理者具有专业的程序设计水平。任何非专业的用户都可以用它来创建功能强大的数据库管理系统。
SQL Server是基于服务器端的中型数据库,适合大容量数据的应用,在功能和管理上要比Access强得多。它在处理海量数据的效率,后台开发的灵活性、可扩展性等方面都很强大。因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用。92HeZu网全部双线合租空间均可使用Access数据库,同时也支持SQL Server。SQL Server还有更多的扩展,可以用作存储过程,且数据库大小无限制。
MySQL是一个开放源码的小型关系型数据库管理系统,开发者为瑞典MySQL AB公司,92HeZu网免费赠送MySQL。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体成本而选择MySQL作为网站数据库。
Oracle是一个关系数据库管理系统。它提供开放的、全面的和集成的信息管理方法。每个Server由一个Oracle DB和一个Oracle Server实例组成。它具有场地自治性(Site Autonomy)并提供数据存储透明机制,以此可实现数据存储透明性。Oracle作为一个通用的数据库管理系统,不仅具有完整的数据管理功能,而且还是一个分布式的数据库系统,支持分布式功能,特别是支持Internet应用。作为一个应用开发环境,Oracle提供了一套界面友好、功能齐全的数据库开发工具。其使用PL\SQL语言执行各种操作,具有可开放性、可移植性、可伸缩性等诸多性能。Oracle可以运行于目前所有主流平台上,如SUN Solarise、Sequent Dynix/PTX、Intel NT、HP UX、DEC UNIX、IBM AIX等。Oracle的异构服务为同其他数据源以及使用SQL和PL/SQL的服务进行通信提供了必要的基础设施。Oracle包括了几乎所有的数据库技术,因此被认为是未来企业级主选数据库之一。
在一个网站设计之初,就应该考虑采用什么数据库,正如考虑网站的整体页面布局和程序设计过程中应该采用什么编程语言一样。在网站建设开始之前,应该根据自身建站的需求和其他一些因素选择合适自己的数据库。因为越大的数据库开发费用就越高,但是太小的数据库有可能影响到网站的整体性能,包括数据查询、数据调用等各个方面。所以要选择合适的数据库,满足企业的需求。
虽说目前常见的网站后台数据库种类繁多,每种数据库都各有特色,但是从网站本身的需求、数据库使用便捷性和所需费用等方面来说,Access、SQL Server和MySQL这3种数据库管理系统应该是使用率较高的。不过由于Access数据库有一个比较明显的弊端,即如果数据库超过一定容量之后,查询和调用的速度就会明显下降,从而导致整个网站响应延迟,因此一般建议站长选择SQL Server或者MySQL作为网站后台数据库。SQL Server和MySQL适合中小型企业的数据库应用系统选择,而Oracle和DB2更适合大型企业的数据库应用系统选择。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。