Apache与Tomcat有什么关系和区别

经常在用Apache和Tomcat等这些服务器,可是总感觉还是不清楚他们之间有什么关系,在用Tomcat的时候总出现Apache,总感到迷惑,到底谁是主谁是次,因此特意在网上查询了一些这方面的资料,总结了一下:

Apache支持静态页,Tomcat支持动态的,比如servlet等;一般使用Apache+Tomcat的话,Apache只是作为一个转发,对jsp的处理是由Tomcat来处理的。

Apache可以支持php\cgi\perl,但是要使用java的话,你需要Tomcat在Apache后台支撑,将java请求由Apache转发给Tomcat处理。

Apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是Apache的扩展,但是可以独立于Apache运行。

相同点

  1. 两者都是Apache组织开发的
  2. 两者都有HTTP服务的功能
  3. 两者都是免费的

不同点

  1. Apache是专门用了提供HTTP服务的,以及相关配置的(例如虚拟主机、URL转发等等)
  2. Tomcat是Apache组织在符合J2EE的JSP、Servlet标准下开发的一个JSP服务器

二者的整合

Apache是一个web服务器环境程序,启用他可以作为web服务器使用,不过只支持静态网页,如(asp,php,cgi,jsp)等动态网页的就不行。

如果要在Apache环境下运行jsp 的话就需要一个解释器来执行jsp网页,而这个jsp解释器就是Tomcat, 为什么还要JDK呢?因为jsp需要连接数据库的话,就要jdk来提供连接数据库的驱程,所以要运行jsp的web服务器平台就需要Apache+Tomcat+JDK。

整合的好处

如果客户端请求的是静态页面,则只需要Apache服务器响应请求,如果客户端请求动态页面,则是Tomcat服务器响应请求 。因为jsp是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销。

总结

Apache:侧重于http server;

Tomcat:侧重于servlet引擎,如果以standalone方式运行,功能上与Apache等效 , 支持JSP,但对静态网页不太理想;

Apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是Apache的扩展,但是可以独立于Apache运行。

换句话说,Apache是一辆卡车,上面可以装一些东西如html等。但是不能装水,要装水必须要有容器(桶),而这个桶也可以不放在卡车上。

补充

到现在为止,我们未讨论作为服务器扩展的Tomcat,只讨论了作为独立运行的服务器。但有一些问题需要说明:

  1. 当处理静态页面时,Tomcat不如Apache迅速。
  2. Tomcat不象Apache一样可配置。
  3. Tomcat不象Apache一样强壮。
  4. 有很多网站已在某一特定web server上投入了很长时间,例如,使用CGI脚本/Server API模组/perl/php…我们不能假设这些遗留下来的东西都会被丢弃。

基于以上原因,一个现实的网站建议使用一个Web服务器,如Apache,为网站的静态页面请求提供服务,并使用Tomcat作为一个Servlet/JSP插件。

转载链接

  1. http://blog.csdn.net/longzs/article/details/10959945
  2. http://www.jdon.com/11138
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值