总体来说,WEB服务器通过Http只是简单地处理一个请求并返回一个响应供客户端浏览。在这里需要注意的是,WEB服务器处理请求是不可以重用的,即客户端每发送一次请求(相同的请求),WEB服务器就要重新进行一次处理,因为客户端请求的信息时内嵌在HTML里面的,这对于一些重复请求来说效率很低。
应用服务器是通过各种协议,可以包括HTTP,把商业逻辑暴露给(expose)客户端应用程序。前面说过WEB服务器主要是通过处理请求以返回HTML页面供客户端浏览,而应用服务器是提供访问商业逻辑的途径供客户端使用。大多数情况下,应用服务器是通过提供应用程序接口(API)的形式把商业逻辑暴露给客户端的。因此,当客户端发出一个请求时,它只要通过使用应用服务器暴露给它的商业逻辑对请求进行处理并返回响应。这样大大提高了商业逻辑的可重用性。
JSP/Servlet中的应用服务器我们把它称作Servlet引擎(Servlet engine)。常见的Servlet引擎有Tomcat, Resin ,Jety等。Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。Tomcat不仅仅是一个Servlet引擎,同时它也是一个WEB服务器,因此它也可以用来处理HTML页面。但是与WEB服务器Apache相比,Tomcat处理页面的效率要低。因此我们可以把Apache和Tomcat集成起来一起使用,用Apache来处理HTML页面,用Tomcat来处理JSP和Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可。 Jetty 是一个开源的Servlet引擎,它为基于Java的web内容,例如JSP和servlet提供运行环境。
下面让再详细说明下:
Web服务器(Web Server)
Web服务器可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response),例如送回一个HTML页面。为了处理一个请求(request),Web服务器可以响应(response)一个静态页面或图片,进行页面跳转(redirect),或者把动态响应(dynamic response)的产生委托(delegate)给一些其它的程序例如CGI脚本,JSP(JavaServer Pages)脚本,servlets,ASP(Active 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)(给客户端应用程序)的,例如基于J2EE(Java 2 Platform, Enterprise Edition)应用程序服务器的EJB(Enterprise JavaBean)组件模型。此外,应用程序服务器可以管理自己的资源,例如看大门的工作(gate-keeping duties)包括安全(security),事务处理(transaction processing),资源池(resource pooling), 和消息(messaging)。就象Web服务器一样,应用程序服务器配置了多种可扩展(scalability)和容错(fault tolerance)技术。
分享到:
相关推荐
当Web服务器接收到对JSP页面的请求时,会先执行其中的Java代码,然后将处理结果以HTML的形式返回给客户端。这种工作模式使得客户端浏览器不需要承担复杂的计算任务,只需接收和展示结果,降低了对客户端的要求。在...
系统采用C/S(客户机/服务器)和B/S(浏览器/服务器)混合模式,既保证了数据处理速度,又实现了Web服务的便捷访问。用户通过浏览器即可查看煤矿运行的基本参数、实时和历史数据,以及异常信息,实现资源的共享和...
Struts 1是一款经典的Java Web框架,它在2000年代初期被广泛使用,为MVC(模型-视图-控制器)设计模式在Java Web应用中的实现奠定了基础。随着时间的推移,虽然Struts 2和其他现代框架如Spring MVC、Play Framework...
物理安全则关注数据库服务器的实体保护,防止非法物理访问;加密技术用于对数据进行编码,确保即使数据被盗也无法解读;身份验证则是确保只有授权用户能够访问数据库,防止冒名顶替。 【数据保护策略】 1. **访问...
对于较大的文件,或者需要服务器端动态生成的图像,直接嵌入数据URI可能会导致页面加载时间过长,或者无法利用CDN等优化策略。 综上所述,数据URI方案是一种有效的网页优化策略,尤其适用于嵌入小型资源,减少HTTP...
- **ASP.NET 3.5新增控件:** 列出了新版本中引入的新控件,如GridView、Wizard等,并介绍了它们的特点和应用场景。 - **ASP.NET 3.5 AJAX:** 解释了ASP.NET AJAX的原理和技术特点,包括脚本管理器、更新面板等控件...