web服务器和应用服务器的区别与分析

web服务器和应用服务器

前导:要想了解web服务器和应用服务器,必需要了解什么是web服务器、什么是应用服务器,以及两者之间的区别和联系html

web服务器(Web Server)
   理解WEB服务器,首先你要理解什么是WEB?
   WEB你能够简单理解为你所看到的HTML页面就是WEB的数据元素,处理这些数据元素的应用软件就叫WEB服务器,如apache、IIS。 WEB服务器与客户端打交道,它要处理的主要信息有:session、request、response、HTML等
   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)常常被误认为仅仅是应用程序服务器专有的特征。java

应用服务器:
   应用服务器,如JSP,处理的是很是规性WEB页面(JSP文件),它动态生成WEB页面,生成的WEB页面在发送给客户端(实际上当应用服务器处理完一个JSP请求并完成JSP生成HTML后它的任务就结束了,其他的就是WEB处理的过程了)
   根据定义,做为应用程序服务器,它经过各类协议,能够包括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)技术。linux

简而言之,应用服务器处理业务逻辑,web服务器则主要是让客户能够经过浏览器进行访问,处理HTML文件,web服务器一般比应用服务器简单。
WEB服务器:Apache、IIS、Nginx(也是反向代理服务器)
应用服务器:Tomcat、Weblogic、Jbossweb


一 web服务器

1.Apache服务器
   Apache是世界使用排名第一的Web服务器。它能够运行在几乎全部普遍使用的计算机平台上。源于NCSAhttpd服务器,通过屡次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,Apache有多种产品,能够支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,所以,在一个Apache Web站点扩容时,一般是增长服务器或扩充群集节点而不是增长处理器。
Apache web服务器软件拥有如下特性:
一、支持最新的HTTP/1.1通讯协议
二、拥有简单而强有力的基于文件的配置过程
三、支持通用网关接口
四、支持基于IP和基于域名的虚拟主机
五、支持多种方式的HTTP认证
六、集成Perl处理模块
七、集成代理服务器模块
八、支持实时监视服务器状态和定制服务器日志
九、支持服务器端包含指令(SSI)
十、支持安全Socket层(SSL)
十一、提供用户会话过程的跟踪
十二、支持FastCGI
    更多Apache相关信息请参考Apache入门篇1Apache入门篇3数据库

2.IIS web服务器
IIS是Internet Information Services的缩写,是一个World Wide Web server。Gopher server和FTP server所有包容在里面。 IIS意味着你能发布网页,而且有ASP(Active Server Pages)、JAVA、VBscript产生页面,有着一些扩展功能。IIS支持一些有趣的东西,像有编辑环境的界面(FRONTPAGE)、有 全文检索功能的(INDEX SERVER)、有多媒体功能的(NET SHOW) 其次,IIS是随Windows NT Server 4.0一块儿提供的文件和应用程序服务器,是在Windows NT Server上创建Internet服务器的基本组件。它与Windows NT Server彻底集成,容许使用Windows NT Server内置的安全性以及NTFS文件系统创建强大灵活的Internet/Intranet站点。IIS(Internet Information Server,互联网信息服务)是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。
IIS应用服务器有如下特性:
IIS 6.0 与Windows Server 2003为网络应用服务器的管理提供了许多新的特性,包括实用性、可靠性、安全性与可扩展性。IIS 6.0也加强了开发和国际化支持,Windows Server 2003和IIS 6.0为您提供了一整套最可靠、高效、链接的一体化网络应用解决方案。微软自带的产品,操做简单,下一步下一步就能够完成架设了。apache

二 应用服务器

1.Tomcat应用服务器
    Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统经常使用的功能;Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,因此当你 运行tomcat 时,它实际上做为一个与Apache 独立的进程单独运行的。由于Tomcat 技术先进、性能稳定,并且免费,于是深受Java 爱好者的喜好并获得了部分软件开发商的承认,成为目前比较流行的Web 应用服务器。
    更多Tomcat相关信息请参考Tomcat快速入门windows

2.Weblogic应用服务器
    Web Logic是美国bea公司出品的一个application server确切的说是一个基于Javaee架构的中间件,BEA Web Logic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中,是用来构建网站的必要软件,拥有解析发布网页等功能,它是用纯java开发的。
Web logic应用服务器有如下优势:
1对业内多种标准的全面支持,包括EJB、JSB、JMS、JDBC、XML和WML,使Web应用系统的实施更为简单,而且保护了投资,同时也使基于标准的解决方案的开发更加简便。
2无限的可扩展性BEA Web Logic Server以其高扩展的架构体系闻名于业内,包括客户机链接的共享、资源pooling以及动态网页和EJB组件群集。
三、凭借对EJB和JSP的支持,以及BEA Web Logic Server 的Servlet组件架 构体系,可加速投放市场速度。这些开放性标准与Web Gain Studio配合时,可简化开发,并可发挥已有的技能,迅速部署应用系统。
四、BEA Web Logic Server的特色是与领先数据库、操做系统和Web服务器紧密集成。
五、关键任务可靠性其容错、系统管理和安全性能已经在全球数以千记的关键任务环境中得以验证。
六、BEA Web Logic Server简化了可移植及可扩展的应用系统的开发,并为其它应用系统和系统提供了丰富的互操做性。凭借其出色的群集技术,BEA Web Logic Server拥有最高水平的可扩展 性和可用性。BEA Web Logic Server既实现了网页群集,也实现了EJB组件 群集,并且不须要任何专门的硬件或操做系统支持。网页群集能够实现透明的复制、负载平衡以及表示内容容错,如Web购物车;组件群集则处理复杂的复制、负载平衡和EJB组件容错,以及状态对象(如EJB实体)的恢复。 不管是网页群集,仍是组件群集,对于电子商务解决方案所要求的可扩展性和可用性都是相当重要的。共享的客户机/服务器和数据库链接以及数据缓存和EJB都加强了性能表现。这是其它Web应用系统所不具有的。浏览器

3.JBoss应用服务器
简介:
JBoss 是一套开源的企业级 Java 中间件系统,用于实现基于 SOA 的企业应用和服务。是一个运行EJB的J2EE应用服务器。它是开放源代码的项目,遵循最新的J2EE规范。从JBoss项目开始至今,它已经从一个EJB容器发展成为一个基于的J2EE的一个web操做系统(operating systemfor web),它体现了J2EE规范中最新的技术,含有Jsp和Servlet容器,也就能够作web容器,也包含 EJB容器,是完整的J2EE应用服务器。JBoss 是最受欢迎并且功能最为强大的应用服务器。最新版本的JBoss AS 7.0.2已经发布。
JBoss应用服务器有如下优势:
一、JBoss是免费的,开放源代码J2EE的实现,经过LGPL许可证进行发布。但同时也有闭源的,开源和闭源流入流出的不是同一途径。
二、JBoss须要的内存和硬盘空间比较小。
三、安装便捷:解压后,只需配置一些环境变量便可。
四、JBoss支持"热部署",部署BEAN时,只拷贝BEAN的JAR文件到部署路径下便可自动加载它;若是有改动,也会自动更新。
五、JBoss与Web服务器在同一个Java虚拟机中运行 ,Servlet调用EJB不通过网络,从而大大提升运行效率,提高安全性能。
六、用户能够直接实施J2EE-EAR,而不是之前分别实施EJB-JAR和Web-WAR,很是方便。
七、Jboss支持集群。缓存

对以上几种服务器的对比和分析
    Apache是一个静态页面,而Tomcat是一个动态页面。若是想要在Apache环境下运行jsp动态网页就须要一个jsp解释器,而tomcat就是做为一个解释器来帮助在Apache的环境下执行动态页面,Tomcat是先将静态页面转换成java.类型文件,而后再以jsp.的文件形式运行。可是在处理静态页面时,tomcat就不如Apache那样迅速,也不能对其进行配置。所以在现实的使用中,Tomcat是作为一Apache的一个插件来显示网站的动态页面的。这样可使网站具备更好的扩展性和安全性。
    JBoss Web将Tomcat内核做为其Servlet容器引擎,Tomcat,在很活动链接支持、静态内容、大文件和HTTPS处理上表象不如JBoss那样优越,同时Tomcat只能运行Java应用程序,企业在使用时Tomcat,这样在使用时须要用Apache Web Server进行整合。
    Apache支持全部的操做系统,能够跨平台使用,而IIS只能基于windows操做系统下使用,在开源代码方面Apache是彻底开放免费的,而IIS是部分开源代码。在安装上IIS使用的是傻瓜式图形化安装,使用者只要按照提示安装便可,可是Apache在安装上相对复杂困难,在语言的运行方面Apache支持多种运行语言例如ASP,PHP,JSP,可是IIS若是要运行PHP须要反复的配置才能运行。tomcat