最近工作总是接触到Apache 和 Tomcat 服务器,它们到底有什么区别,还是有点模糊,下面梳理一下。

        Apache是Web服务器(静态解析,如HTML),Tomcat是Java应用服务器(动态解析,如JSP)。请参考:web服务器与应用服务器的区别

        Tomcat是一个Servlet(JSP)容器,是Apache的扩展,可以独立于Apache运行。

        Apache是普通Web服务器,只支持html(静态网页),通过插件支持PHP,可以与Tomcat连通(Apache单向连接Tomcat,通过Apache可以访问Tomcat资源,反之不然)。Tomcat是JSP/servlet容器,同时也支持HTML、JSP、ASP、PHP、CGI等,其中CGI需要一些手动调试,不过很容易的。 

        两者都是Apache组织开发、都有HTTP服务的功能、都是开源免费。

        如果客户端请求的是静态页面,只需Apache服务器响应请求;如果客户端请求动态页面,则由Tomcat服务器响应请求,将解析的JSP等网页代码解析后回传给Apache服务器,再经Apache返回给客户端端。

        这是因为JSP是服务器端解释代码的,Tomcat只做动态代码解析,Apache回传解析好的静态代码,Apache+Tomcat整合可以减少Tomcat的服务开销。 

        Apache由C语言实现,支持各种特性和模块从而来扩展核心功能;Tomcat由Java编写的,更好的支持Servlet和JSP。

        Apache可以运行一年不重启,稳定性非常好,而Tomcat则不见得。

        Apache是最开始的页面解析服务,Tomcat是后研发出来的,从本质上来说Tomcat的功能完全可以替代Apache,但Apache毕竟是Tomcat的前辈级人物,并且市场上也有不少人还在用Apache,所以Apache还会继续存在,不会被取代,Apache不能解析java的东西,但解析html速度快。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐