Web应用程序开发技术
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4 服务器

服务器是一种高性能计算机,作为网络的节点,存储、处理网络上80%的数据、信息,因此也被称为网络的灵魂。做一个形象的比喻:服务器就像是邮局的交换机,而微机、笔记本电脑、PDA、手机等固定或移动的网络终端,就如散落在家庭、各种办公场所、公共场所等处的电话机。我们与外界日常的生活、工作中的电话交流、沟通,必须经过交换机,才能到达目标电话机;同样如此,网络终端设备如家庭、企业中的计算机,获取资讯,与外界沟通、娱乐等,也必须经过服务器,因此也可以说是服务器在“组织”和“领导”这些设备。

服务器可以用来搭建网页服务(我们平常上网所看到的网页页面的数据就是存储在服务器上供人们访问的)、邮件服务(我们发的所有电子邮件都需要经过服务器的处理、发送与接收)、文件共享与打印共享服务、数据库服务等。而这所有的应用都有一个共同的特点,它们面向的都不是一个人,而是众多的人,同时处理的是众多的数据。所以服务器与网络是密不可分的,可以说离开了网络,就没有服务器;服务器是为提供服务而生,只有在网络环境下才有其存在的价值。而个人计算机完全可以在单机的情况下完成数据处理任务。

Web服务器是目前网络中应用最广的一种服务器,下面介绍Web服务器的相关知识。

1.4.1 Web服务器

Web服务器实际是一个软件,用于管理Web页面,并使这些页面通过本地网络或Internet供客户浏览器使用。在Internet中,Web服务器和浏览器通常位于两台不同的机器上,也许它们之间相隔数千里。而在本地情况下,也可以在一台机器上运行Web服务器软件,再在这台机器上通过浏览器浏览它的Web页面。

访问远程Web服务器(即Web服务器与浏览器应用程序位于不同的机器)与本地服务器(Web服务器和浏览器位于同一机器)之间没有什么差别,因为不论何种情况,Web服务器的功能(即生成可用的Web页面)均保持不变。如果您是唯一在自己的计算机上访问Web服务器的人,无论是何种情况,其工作原理是不变的。如图1.4所示为Web浏览器从Web服务器获得Web页面的过程。

图1.4 Web浏览器从Web服务器获得Web页面的过程

Web服务器的主要功能如下。

1.信息的发布

信息发布是最基本的应用,行政机关、企事业单位甚至个人,都可以借助Web服务器发布各种各样的信息,例如时事新闻、法律法规、科普知识、技术文档、产品图文等。这些能使用户及时地了解到各种各样的信息。

2.充当其他网络服务的平台

在信息发布的基础上可以发展到电子商务、资料查询、网络图书馆,BBS、网络学校、办公自动化、Web电子邮件,甚至视频点播(VOD)等,这些应用的交互性更强,并且必须受到网络数据库的支持。

常用的Web服务器有Apache、IIS和Tomcat服务器等,下面分别介绍。

1.4.2 IIS服务器

IIS是Internet Information Server的缩写,它是微软公司主推的服务器,是目前最流行的Web服务器之一,它提供了强大Internet和Intranet服务功能,最新的版本是Windows 2003里面包含的IIS 6.0,IIS与Windows NT Server完全集成在一起,因而用户能够利用Windows NT Server和NTFS(NT File System, NT的文件系统)内置的安全特性,建立强大,灵活而安全的Internet和Intranet站点。

IIS支持HTTP(Hypertext Transfer Protocol,超文本传输协议),FTP(File Transfer Protocol,文件传输协议)以及SMTP协议,通过使用CGI和ISAPI, IIS可以得到高度的扩展。提供了一个图像界面的管理工具,称为Internet服务管理器,同时,还提供一个Internet数据库连接器,能够实现对数据库的查询和更新。

IIS支持与语言无关的脚本编写和组件,通过IIS,开发人员就可以开发新一代动态的,富有魅力的Web站点。IIS不需要开发人员学习新的脚本语言或者编译应用程序,IIS完全支持VBScript, JavaScript开发软件以及Java,也支持CGI和WinCGI,以及ISAPI扩展和过滤器。

IIS的设计目的是建立一套集成的服务器服务,用以支持HTTP, FTP和SMTP,它能够提供快速且集成了现有产品,同时可扩展的Internet服务器。

IIS响应性极高,同时系统资源的消耗也是最少的,IIS的安装,管理和配置都相当简单,这是因为IIS与Windows NT Server网络操作系统紧密的集成在一起,另外,IIS还使用与Windows NT Server相同的SAM(Security Accounts Manager,安全性账号管理器),对于管理员来说,IIS使用诸如Performance Monitor和SNMP(Simple Network Management Protocol,简单网络管理协议)之类的NT已有的管理工具。

IIS支持ISAPI,使用ISAPI可以扩展服务器功能,而使用ISAPI过滤器可以预先处理和事后处理储存在IIS上的数据。用于32位Windows应用程序的Internet扩展可以把FTP, SMTP和HTTP协议置于容易使用且任务集中的界面中,这些界面将Internet应用程序的使用大大简化,IIS也支持MIME(Multipurpose Internet Mail Extensions,多用于Internet邮件扩展),它可以为Internet应用程序的访问提供一个简单的注册项。

IIS服务器特有的功能:

(1)IIS可以赋予一部主机一组以上的IP地址,而且还可以有一个以上的域名作为Web网站,可以利用TCP/IP设置两组以上的IP地址给它,除了为网卡再加进一组IP地址之外,必须在负责这个点的DNS上为这组IP地址指定另一个域名,完成这些步骤以后,在Internet Service Manage中就会出现一个虚拟Web服务器,虚拟服务器(Virtual Server)必须有它自己的主目录(Home Directory),对于IIS来说,所有服务器都是它的虚拟服务器。

(2)在互联网上,有很多网站需要多部服务器才能够应付来自用户端的请求,这就需要利用DNS所具有的功能,将一组以上的IP指定给同一个域名,每当这个网站接到服务要求,由DNS负责进行解析,它会指定域名的下一组IP地址给它,若要求采用这套做法,服务器的内容必须逐一复制到每一部服务器上。

(3)为了存取后端数据库,IIS支持以下三种方式。

IDC:Internet Data Connector

ADO:ActiveX Data Object

ADC:Advanced Data Connector

这三种存储方式各有其特点,这里特别强调的是这三种数据库存取方式的后端数据库都必须提供ODBC界面才可以。

1.4.3 Apache服务器

Apache是一种开放源码的支持HTTP协议的一种Web服务器,由于其多平台和安全性的特点,被广泛使用,是最流行的Web服务器端软件之一,它可以运行在几乎所有广泛使用的计算机平台上。

Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。

本来Apache只用于小型或试验Internet网络,后来逐步扩充到各种UNIX系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上使用最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon.com、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于其源代码开放,有一支开放的开发队伍,支持跨平台的应用(可以运行在几乎所有的UNIX、Windows、Linux系统平台上),以及它的可移植性等方面。

Apache的诞生极富有戏剧性。当NCSA Web服务器项目停顿后,那些使用NCSA Web服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了Apache Group,后来这个团体在NCSA的基础上创建了Apache。

Apache Web服务器软件拥有以下特性:

(1)支持最新的HTTP/1.1通信协议。

(2)拥有简单而强有力的基于文件的配置过程。

(3)支持通用网关接口。

(4)支持基于IP和基于域名的虚拟主机。

(5)支持多种方式的HTTP认证。

(6)集成Perl处理模块。

(7)集成代理服务器模块。

(8)支持实时监视服务器状态和定制服务器日志。

(9)支持服务器端包含指令(SSI)。

(10)支持安全Socket层(SSL)。

(11)提供用户会话过程的跟踪。

(12)支持FastCGI。

(13)通过第三方模块可以支持Java Servlets。

1.4.4 Tomcat服务器

Tomcat服务器是一个免费的开放源代码的Web应用服务器,Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat 5支持最新的Servlet 2.4和JSP 2.0规范。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。

Tomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。

Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当运行Tomcat时,它实际上作为一个与Apache独立的进程单独运行。

这里的诀窍是,当配置正确时,Apache为HTML页面服务,而Tomcat实际上运行JSP页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。

基于Tomcat的开发其实主要是JSP和Servlet的开发,开发JSP和Servlet非常简单,可以用普通的文本编辑器或者IDE,然后将其打包成WAR即可。这里提到另一个工具Ant, Ant也是Jakarta中的一个子项目,它所实现的功能类似于UNIX中的make,你需要写一个build.xml文件,然后运行Ant就可以完成xml文件中定义的工作,这个工具对于一个大的应用来说非常好,只需在xml中写很少的内容就可以将其编译并打包成WAR。事实上,在很多应用服务器的发布中都包含了Ant。另外,在JSP1.2中,可以利用标签库实现Java代码与Html文件的分离,使JSP的维护更方便。

Tomcat也可以与其他一些软件集成起来实现更多的功能。如与上面提到的JBoss集成起来开发EJB,与Cocoon(Apache的另外一个项目)集成起来开发基于Xml的应用,与OpenJMS集成起来开发JMS应用,除了提到的这几种,可以与Tomcat集成的软件还有很多,这里不一一阐述。