Apache 和 Tomcat 都是web网络服务器,两者既有联系又有区别,在进行HTML、PHP、JSP、Perl等开发过程中,需要准确掌握其各自特点,选择最佳的服务器配置。
相同点:
1)两者都是apache组织开发的
2)两者都有HTTP服务的功能
3)两者都是开源免费的
不同点:
1)Apache是普通的Web服务器(静态解析),本身只支持html即普通网页,可以通过插件支持php,还可以与Tomcat连通(Apache单向连接Tomcat,就是说通过Apache可以访问Tomcat资源,反之不然)。
2)Tomcat是Java应用服务器(动态解析),可处理Jsp动态网页,是一个Servlet(Jsp也会翻译成Servlet)容器,可以认为是Apache的扩展,但是可以独立于Apache运行。同时也支持HTML、JSP、ASP、PHP、CGI等,其中CGI需要一些手动调试,不过很容易的。
3)Apache是Web服务器,Web服务器传送页面使浏览器可以浏览,Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议来为应用程序提供商业逻辑(business logic)。Tomcat是运行在Apache上的应用服务器,应用程序服务器提供的是客户端应用程序可以调用(call)的方法 (methods)。
5)Apache侧重于http server,Tomcat侧重于servlet引擎,Apache可以运行一年不重启,稳定性非常好,而Tomcat则不见得。因此,首选web服务器是Apache,但Apache解析不了的Jsp、Servlet才用Tomcat。
6)Apache是一辆车,上面可以装一些东西如html等,但是不能装水,要装水必须要有容器(桶),而这个桶也可以不放在卡车上,那这个桶就是Tomcat。
Apache和Tomcat整合使用:
※Apache和Tomcat是独立的,在同一台服务器上可以集成。
1)如果客户端请求的是静态页面,则只需要Apache服务器响应请求;
2)如果客户端请求动态页面,则是Tomcat服务器响应请求,将解析的Jsp等网页代码解析后回传给Apache服务器,再经Apache返回给浏览器端。这是因为Jsp是服务器端解释代码的,Tomcat只做动态代码解析,Apache回传解析好的静态代码,Apache+Tomcat这样整合就可以减少Tomcat的服务开销。
3)那为什么还要Jdk呢?因为jsp需要连接数据库的话就要Jdk来提供连接数据库的驱程,所以要运行Jsp的Web服务器平台就需要Apache+Tomcat+Jdk