Web服务器、HTTP服务器及应用服务器的区别?

Web服务器、HTTP服务器及应用服务器有何区别?Apache、Nginx、IIS、Tomcat、JBoss、Weblogic、WebSphere 都各属于哪种服务器?

Web服务器是指驻留在Internet上的计算机程序,它的基本功能是提供Web信息浏览服务。因为Web服务器主要支持的协议就是HTTP协议,所以通常情况下WEB服务器和HTTP服务器说的是同一回事应用服务器是指通过各种协议把商业逻辑曝露给客户端的程序,它提供访问业务逻辑的途径以供客户端应用程序使用。

通俗的讲,Web服务器专门处理HTTP请求,应用服务器通过各种协议来为客户端提供业务逻辑。以J2EE为例,Web服务器主要处理静态页面以及作为Servlet容器,解释和执行servlet/JSP,而应用服务器主要运行业务逻辑,如EJB、 JNDI和JMX等J2EE API,还包含事物管理、数据库连接等功能。因此,在企业级应用中,应用服务器提供的功能比Web服务器强大得多。

以这样的定义,Apache、Nginx、IIS、Tomcat都属于Web服务器,JBoss、Weblogic、WebSphere都属于应用服务器。

综上:ApacheNginx是纯粹的Web服务器,而IISTomcat因为具有了解释和执行服务器端代码的能力,可以称作为轻量级应用服务器JBoss、WeblogicWebSphere因为能提供强大的J2EE API功能,毫无疑问是绝对的应用服务器。对于处于中间位置的Tomcat,它可以配合Web服务器Apache/Nginx一起使用,也可以作为应用服务器的辅助与应用服务器一起使用。

Tomcat与Web服务器

Tomcat是一个支持Servlet和JSP技术的容器。Web服务器Apache、Nginx仅仅支持静态网页,对于支持动态网页就会显得无能为力,而Tomcat(Servlet和JSP能根据实时需要产生动态网页)既能为动态网页服务,又能为静态网页提供支持。尽管Tomcat没有通常的Web服务器快(通常的Web服务器都是用底层语言(如C/C++)编写,而Tomcat用纯Java编写)、功能也不如通常的Web服务器丰富,但是其正在不断的改进和完善。

一般来说,大型网站都是将Tomcat与Apache/Nginx结合,Apache/Nginx负责接受来自客户端的HTTP请求,然后将HTTP请求转发给Tomcat来处理。

为了提高性能,可以将一台Apache/Nginx连接多台tomcat实现负载均衡。

Tomcat与应用服务器

目前,Tomcat一直被认为是Servlet容器。然而,Tomcat并不仅仅如此,它还提供了JNDI和JMX的实现机制。尽管如此,Tomcat仍然还不能算是应用服务器,因为它不提供J2EE API的其他大多数支持。

目前许多的应用服务器通常把Tomcat作为它们Servlet容器。

对于开发者来说,如果是为了寻找Servlet、JSP、JNDI和JMX技术来生成Java Web应用的话,选择Tomcat是一个优秀的解决方案;但是为了寻找其他的J2EE API的支持,那么寻找一个应用服务器或者把Tomcat作为应用服务器的辅助是一个不错的解决方案;第三种方式是找到独立的J2EE API实现,然后把它们跟Tomcat结合起来使用,虽然整合会带来相关的问题,但是这种方式是最为有效的。

 

你可能感兴趣的:(Web服务器、HTTP服务器及应用服务器的区别?)