apache和tomcat的区别

来源:百度文库 编辑:神马文学网 时间:2024/06/12 17:59:22

apache和tomcat的区别

web服务器 2010-04-08 23:36:14 阅读25 评论0  字号:大中小 订阅

今天在公司一天都没什么事情做,于是就上网查找资料终于弄明白apache和tomcat到底有什么区别。

其实apache是单纯的web服务器,它的功能很简单,就是单纯的接收客户端的request请求,并检查请求是否完整、是否合法、所要访问的资源是否存在、该客户端对所要访问的资源有没有操作的权限、是否能通过用户认证(如:cookie认证或者其它方式的认证)、对URL进行简单的解析、设置环境变量,然后将请求交给相应的应用程序处理器,如cgi脚本程序或者web应用服务器。当相应的应用程序处理好并生成html之后apache将该html返回给客户端浏览器,并记录相应的日志。而tomcat是web服务器和web应用服务器的集合体,它不仅做了apache所做的工作,而且内置有web容器,能处理jsp和servlet,将它们处理成html后返回给客户端浏览器。也就是说apache只能做静态网页服务器,而tomcat既能做静态服务器并且能做动态服务器,这些只是从他们实现的功能来说的。但是apache和tomcat又各有个的优势,apache使用C、C++编写的,并且由于其专注于做web服务器,而是它的处理速度快,稳定性好,扩展性强,并且当web服务器接收到request请求之后都要启动线程去进行处理的,而启动线程是要消耗一定的系统资源和时间的,而apache采用预启动机制(启动一定数量的线程等待连接,当连接数超过时再启动一定数量的线程)和认证机制,使得响应速度大大提高,并且阻止了很多不合法的请求往应用服务器的传递,从而也提高了系统的性能。tomcat的应用服务器做得很出色,但是它的web服务器的功能太少,不够灵活,扩展性差,并且响应速度也不是很好,但是tomcat是用java编写的,也有其自身的优点。

综上分析,对于访问量大的站点往往是将apache和tomcat等结合起来使用,将apache置于前而其他web服务器置于后,通过apache的转发和代理机制将请求交给相应的其它web服务器,有利于性能的提高。