1. 一般使用Apache+tomcat部署的,Apache是作为一个转发,tomcat来对jsp进行处理。
2. 共同点:
- 都是apache组织开发的
- 都有http服务的功能
- 都是开源免费的
3.联系:
- Apache是普通服务器,只支持html(即普通网页),可以通过插件支持php。可以连通tomcat(单向连接,即Apache可访问tomcat资源,但反之不可)
- 只支持静态网页,像jsp动态网页就需要tomcat来处理。
- Apache和tomcat整合使用:
- 如果客户端请求静态页面,则只需要Apache服务器响应请求。
- 如果客户端请求动态页面,则是tomcat服务器响应请求。(将jsp网页代码解析后回传给Apache,再由Apache返回给浏览器端)
- 这是因为,jsp是服务器端解释代码的,tomcat只做动态代码解析,apache回传解析好的静态代码。tomcat+Apache这样的组合,可以减小tomcat的服务开销
- Apache和tomcat是相互独立的,可以集成部署在同一台机器上。
4. 区别:
- Apache是由C语言编写的(支持各种特性和模块,从而来扩展核心功能);tomcat 是由Java编写的(更好的支持servlet和JSP)。
- Apache是web服务器,而tomcat是运行在Apache服务器上的应用服务器。(web服务器传送页面,使浏览器可以浏览,web服务器专门处理http请求,但是应用程序服务器是通过很多协议来为应用程序提供商业逻辑。应用程序服务器提供的是客户端应用程序可以调用的方法,它只是一个servlet容器,可以认为是Apache的扩展,但是可以独立于Apache运行)
- Apache是普通服务器,本身只支持html静态普通网页,而tomcat是jsp/servlet容器,同时也支持HTML、JSP、ASP、PHP、CGI等
- Apache侧重于http server,tomcat侧重于servlet引擎,如果以standalone方式运行,功能上tomcat与Apache等效支持JSP,但对静态网页不太理想。
- Apache可以运行一年不重启,稳定性非常好,而tomcat则不可以。
- 首选web服务器是Apache,但Apache解析不了的jsp、servlet才用tomcat。
- Apache是很早开始的页面解析服务,而tomcat是后研发出来的。从本质上来说tomcat的功能完全可以替代Apache,但Apache毕竟是tomcat的前辈,并且市场上不少人还在使用,所有不会被取代。Apache不能解析java的大小,但解析html速度很快。