apache、jetty与tomcat区别

一、Apache与Tomcat

Apache是Web服务器(静态解析,如HTML),Tomcat是Java应用服务器(动态解析,如JSP)。

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则不见得。

二、Tomcat与jetty

相同点:

tomcat与jetty都是一种servlet引擎,他们都支持标准的servlet规范和javaEE规范

不同点:

1. 架构比较

jetty相比tomcat更为简单

jetty架构是基于Handler来实现的,主要的扩展功能都可以用Handler来实现,扩展简单

tomcat的框架是基于容量设计的,进行扩展是需要了解tomcat的整体设计结构,不易扩展

2. 性能比较

jetty和tomcat性能方面差异不大

jetty可以同时处理大量链接而且可以长时间保持链接,适合于javaWeb聊天应用

jetty的架构简单,因此作为服务器,jetty可以按需加载组件,减少不需要的组件,减少了服务器内存开销,从而提高服务器性能

jetty默认采用NIO结束来处理I/o请求上更占优势,在处理静态资源时,性能较高

tomcat适合处理少数非常繁忙的连接,也就是连接生命周期短的话,tomcat的总体性能更高

tomcat默认采用B/o处理I/o请求,在处理静态资源时,性能较差

3. 其他比较

jetty的应用更加快捷,修改简单,对新的servlet规范的支持更好

tomcat目前应用比较广泛,对javaEE和servlet的支持更加全面,很多特性会直接集成进来

猜你喜欢

转载自blog.csdn.net/qq_38635803/article/details/86070470