解析Web服务器和应用服务器的区别(1)


通俗的讲,Web服务器传送页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用call)的方法methods)。确切一点,你可以说:Web服务器专门处理HTTP请求request),但是应用程序服务器是通过很多协议来为应用程序提供serves)商业逻辑business logic)。

下面让我们来细细道来:

Web服务器Web Server)

Web服务器可以解析handles)HTTP协议。当Web服务器接收到一个HTTP请求request),会返回一个HTTP响应response),例如送回一个HTML页面。为了处理一个请求request),Web服务器可以响应response)一个静态页面或图片,进行页面跳转redirect),或者把动态响应dynamic response)的产生委托delegate)给一些其它的程序例如CGI脚本,JSPJavaServer Pages)脚本,servlets,ASPActive Server Pages)脚本,服务器端server-side)JavaScript,或者一些其它的服务器端server-side)技术。无论它们译者注:脚本)的目的如何,这些服务器端server-side)的程序通常产生一个HTML的响应response)来让浏览器可以浏览。

要知道,Web服务器的代理模型delegation model)非常简单。当一个请求request)被送到Web服务器里来时,它只单纯的把请求request)传递给可以很好的处理请求request)的程序译者注:服务器端脚本)。Web服务器仅仅提供一个可以执行服务器端server-side)程序和返回程序所产生的)响应response)的环境,而不会超出职能范围。服务器端server-side)程序通常具有事务处理transaction processing),数据库连接database connectivity)和消息messaging)等功能。

虽然Web服务器不支持事务处理或数据库连接池,但它可以配置employ)各种策略strategies)来实现容错性fault tolerance)和可扩展性scalability),例如负载平衡load balancing),缓冲caching)。集群特征clustering-features)经常被误认为仅仅是应用程序服务器专有的特征。

应用程序服务器The Application Server)

根据我们的定义,作为应用程序服务器,它通过各种协议,可以包括HTTP,把商业逻辑暴露给expose)客户端应用程序。Web服务器主要是处理向浏览器发送HTML以供浏览,而应用程序服务器提供访问商业逻辑的途径以供客户端应用程序使用。应用程序使用此商业逻辑就象你调用对象的一个方法或过程语言中的一个函数)一样。

应用程序服务器的客户端包含有图形用户界面GUI)的)可能会运行在一台PC、一个Web服务器或者甚至是其它的应用程序服务器上。在应用程序服务器与其客户端之间来回穿梭traveling)的信息不仅仅局限于简单的显示标记。相反,这种信息就是程序逻辑program logic)。 正是由于这种逻辑取得了takes)数据和方法调用calls)的形式而不是静态HTML,所以客户端才可以随心所欲的使用这种被暴露的商业逻辑。

在大多数情形下,应用程序服务器是通过组件component)的应用程序接口API)把商业逻辑暴露expose)给客户端应用程序)的,例如基于J2EEJava 2 Platform, Enterprise Edition)应用程序服务器的EJBEnterprise JavaBean)组件模型。此外,应用程序服务器可以管理自己的资源,例如看大门的工作gate-keeping duties)包括安全security),事务处理transaction processing),资源池resource pooling), 和消息messaging)。就象Web服务器一样,应用程序服务器配置了多种可扩展scalability)和容错fault tolerance)技术。


相关内容