1. Apache和Tomcat区别
对比项 | 服务器种类 | 解释java程序 | 资源区别 |
---|---|---|---|
Apache | Web服务器 | 不能 | 仅支持html,img等静态资源,不支持动态请求如:CGI、Servlet/JSP、PHP、ASP |
Tomcat | Java服务器(Servlet容器) | 能 | 既支持JSP,Servlet等动态资源,也支持静态页,但效率没有Apache高 |
Apache 和 Tomcat 都是web网络服务器,两者既有联系又有区别:
-
Apache是web服务器(仅支持静态解析,如HTML)
也就是说你在服务器的目录下面丢个index.html,通过http:xxx//8080/index.html可以访问
倘若丢个index.jsp,无法解析,无法通过http:xxx//8080/index.jsp访问 -
tomcat是java应用服务器(支持动态解析,如JSP)
确切的说tomcat是轻量级应用服务器,下文会再次介绍
index.html和index.jsp均支持,但对静态文件处理的性能差,这一点不如Apache 效率高
Tomcat只是一个servlet
(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行。
Apache是很最开始的页面解析服务,tomcat是后研发出来的,从本质上来说tomcat的功能完全可以替代Apache,但Apache毕竟是tomcat的前辈级人物,并且市场上也有不少人还在用Apache,所以Apache还会继续存在,不会被取代,apache不能解析java的东西,但解析html速度快
。
因此,由于各有优缺点,一般会整合使用:
-
如果请求是静态网页则由Apache处理,并将结果返回;
-
如果是动态请求,Apache会将解析工作转发给Tomcat处理,Tomcat处理后将结果通过Apache返回。
这样可以达到分工合作,实现负载均衡,提高系统的性能。
2. WEB服务器、应用程序服务器、HTTP服务器区别
Web 应用架构图:
WEB服务器、应用程序服务器、HTTP服务器有何区别?IIS、Apache、Tomcat、Weblogic、WebSphere都各属于哪种服务器,这些问题困惑了很久,今天终于梳理清楚了:
-
Web服务器的基本功能就是提供Web信息浏览服务。它只需支持
HTTP协议、HTML文档格式
及URL。与客户端的网络浏览器配合。因为Web服务器主要支持的协议就是HTTP,所以通常情况下HTTP服务器和WEB服务器是相等的
(有没有支持除HTTP之外的协议的web服务器,作者没有考证过),说的是一回事。
简单来说web服务就是处理http请求,提供入口或提供加载静态页面的功能
-
应用程序服务器(简称应用服务器),我们先看一下微软对它的定义:“我们把应用程序服务器定义为“作为服务器执行共享业务应用程序的底层的系统软件”。就像文件服务器为很多用户提供文件一样,应用程序服务器让多个用户可以同时使用应用程序(通常是客户创建的应用程序)”
简单来说应用程序服务器就是能处理业务的,比如cpu处理运算或和数据库进行交互
通俗的讲,Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑 (business logic)。
以Java EE为例,Web服务器主要是处理静态页面处理和作为 Servlet容器,解释和执行servlet/JSP,而应用服务器是运行业务逻辑的,主要是EJB、 JNDI和JMX API等J2EE API方面的,还包含事务处理、数据库连接等功能,所以在企业级应用中,应用服务器提供的功能比WEB服务器强大的多。
以这样的定义,IIS、Apache、Tomcat都可以属于Web服务器,Weblogic、WebSphere都属于应用服务器。
-
Apache
:在Web服务器中,Apache是纯粹的Web服务器,经常与Tomcat配对使用。它对HTML页面具有强大的解释能力,但是不能解释嵌入页面内的服务器端脚本代码(JSP/Servlet)。 -
Tomcat
:早期的Tomcat是一个嵌入Apache内的JSP/Servlet解释引擎Apache+Tomcat就相当于IIS+ASP。后来的Tomcat已不再嵌入Apache内,Tomcat进程独立于Apache进程运行。而且,Tomcat已经是一个独立的Servlet和JSP容器,业务逻辑层代码和界面交互层代码可以分离了。因此,有人把Tomcat叫做轻量级应用服务器
。 -
IIS
:微软早期的IIS,就是一个纯粹的Web服务器。后来,它嵌入了ASP引擎,可以解释VBScript和JScript服务器端代码了,这时,它就可以兼作应用服务器。当然,它与J2EE应用服务器根本无法相比,但是,从功能上说,从原理上说,它勉强可以称之为应用服务器。确切地说,它是兼有一点应用服务器功能的Web服务器。
综上:Apache是纯粹的web服务器,而Tomcat和IIS因为具有了解释执行服务器端代码的能力,可以称作为轻量级应用服务器或带有服务器功能的Web服务器。Weblogic、WebSphere因为能提供强大的J2EE功能,毫无疑问是绝对的应用服务器。对于处于中间位置的Tomcat,它可以配合纯Web服务器Apache一起使用,也可以作为应用服务器的辅助与应用服务器一起部署
2.1 总结
一个软件有多个身份,如下图所示,因此界限有所模糊:
-
Web服务器是提供WWW服务的程序;
-
Web容器是提供给开发者的框架;
-
Web应用程序服务器内容丰富得多,既可用各厂商通常遵循一定的工业标准并自定义扩展功能而成,也可以利用开源组件轻量级拼装打造;
-
反向代理服务器在企业级应用中表现突出,具有解决集中式安全,负载均衡等等优点。
版权申明:本站文章均来自网络,如有侵权,请联系01056159998 邮箱:itboby@foxmail.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有