作为一个Java开发,Tomcat在工作中是避免不了要使用的,而使用Tomcat的时候总会出现Apache,到底Apache和Tomcat是什么关系?
1.明确两个概念
Apache是Web服务器,和它类似的还有常说的Nginx,而Tomcat是应用服务器,更明确地说Tomcat只是一个servlet容器,可以认为它是Apache的扩展,但是可以独立于Apache运行。
2.两者的相同点
- 两者都是Apache组织开发的
- 两者都有HTTP服务的功能
- 两者都是开源免费的
- 两者都可以独立运行
3.两者的区别
- Apache只是一个普通服务器,只能用来解析静态页面(html),不支持解析动态页面(jsp),它可以通过插件支持php。如果想解析动态页面(jsp)就要用到Tomcat,Tomcat同时也支持HTML、JSP、ASP、PHP、CGI等。
- Apache是用C语言实现的,支持各种特性和模块从而来扩展核心功能,而Tomcat是用Java实现的,所以它更好的支持jsp。
- 一般使用Apache+Tomcat的话,Apache直接处理静态请求而不经过Tomcat,对于动态请求,Apache只是作为一个转发,对jsp的处理是由Tomcat来处理的,Apache回传解析好的静态代码,这样整合就可以减少Tomcat的服务开销。
- Apache可以单向与Tomcat连通,就是说通过Apache可以访问Tomcat资源,反之不然。
- Apache是很最开始的页面解析服务,Tomcat是后研发出来的,从本质上来说Tomcat的功能完全可以替代Apache,但Apache毕竟是Tomcat的前辈级人物,并且市场上也有不少人还在用Apache,Apache虽然不能解析Java的东西,但解析html速度快,所以Apache还会继续存在,不会被取代。
- Apache可以运行一年不重启,稳定性非常好,而Tomcat则不见得。
- 首选web服务器是Apache,但Apache解析不了的jsp、servlet才用Tomcat。
- 只使用Apache服务器不需要安装jdk,使用Tomcat服务器必须安装jdk并配置好环境变量。
4.Apache和Tomcat整合的好处。
- 如果客户端请求的是静态页面,则只需要Apache服务器响应请求
- 如果客户端请求动态页面,则是Tomcat服务器响应请求
- 因为jsp是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销