Apache Tomcat(也称为 Tomcat 做事器)是一个开源的 Web 运用程序做事器,是一个轻量级的、独立的、可扩展的、可管理的 Servlet 容器,由 Apache 软件基金会开拓和掩护。Tomcat 可以运行在各种操作系统上,包括 Windows、Linux和macOS 等。
TomcatTomcat 做事器可以作为独立的 Web 做事器,也可以与其他 Web 做事器(如 Apache HTTP Server)一起利用。它支持 Java Servlet、JavaServer Pages (JSP)、JavaServer Faces (JSF)、Java Expression Language (EL)、WebSocket 和 Java WebSocke t等技能,并且具有良好的性能和可伸缩性。
Tomcat 做事器的紧张功能包括:
运行 Java Servlet 和 JSP 运用程序供应 Java WebSocket 和 WebSocket 协议支持支持 JavaServer Faces (JSF) 和J ava Expression Language (EL)供应管理和监控Web运用程序的功能支持 SSL/TLS 加密可以通过插件扩展其功能供应与其他Web做事器的集成和连接
然而现在不但 Tomcat 一种做事器了,还有一些类似于 Tomcat 的做事器。
JettyJetty 是一个轻量级的 Web 做事器和 Servlet 容器,与 Tomcat 一样,也是基于 Java 的开源软件。Jetty 可以作为一个独立的 Web 做事器,也可以集成到其他运用程序中利用。
优点:轻量级,启动速率快,占用资源少,易于配置和扩展,支持嵌入式运用,良好的性能和稳定性。
缺陷:相对付其他运用做事器,社区规模较小,可能存在一些毛病和问题。
Apache HTTP ServerApache HTTP Server 是一个盛行的Web做事器,它支持多种操作系统和平台,并可以利用各种编程措辞开拓 Web 运用程序。与 Tomcat 不同,Apache HTTP Server 不仅支持 Servlet 和 JSP,还支持 CGI、PHP 等动态网页开拓技能。
优点:广泛运用,具有稳定的架构和出色的性能,支持多种编程措辞和开拓技能,可以处理大量的并发要求,可通过模块化架构进行定制和扩展。
缺陷:不支持完全的JavaEE规范,须要通过CGI等技能来支持动态内容,无法直接处理Servlet和JSP。
GlassFishGlassFish 是一个完全的 JavaEE 运用做事器,包括 Web 做事器、Servlet 容器、EJB 容器等,可以作为 Web 运用程序的开拓、测试和支配平台。与 Tomcat 比较,GlassFish 具有更多的功能和扩展性,但也更加繁芜。
优点:支持完全的JavaEE规范,具有强大的功能和扩展性,良好的集成性和支配管理功能。
缺陷:相对繁芜,须要较高的系统资源和配置本钱,启动速率较慢。
WildFlyWildFly(原名JBoss)是一个盛行的 JavaEE 运用做事器,也包括 Web 做事器和Servlet 容器。WildFly 支持各种 JavaEE 技能,包括 EJB、JMS、JPA等,也支持WebSockets、WebSockets JSR 356、HTTP/2 等最新的Web技能。
优点:支持完全的JavaEE规范,具有出色的性能和稳定性,良好的扩展性和管理功能,支持最新的Web技能。
缺陷:相对繁芜,须要较高的系统资源和配置本钱,相对较新的技能可能存在不稳定性或兼容性问题。
UndertowUndertow 是一个轻量级的 Web 做事器和 Servlet 容器,与 Tomcat 和 Jetty 比较,它的性能更好。Undertow 供应了易于利用的 API 和扩展性,支持 HTTP/2、WebSockets 等最新的 Web 技能。
优点:轻量级,启动速率快,占用资源少,具有出色的性能和稳定性,良好的扩展性和API设计,支持最新的Web技能。
缺陷:相对付其他运用做事器,社区规模较小,可能存在一些毛病和问题。
小结这些做事器各有优缺陷,用户须要根据自己的需求选择最适宜自己的做事器。
如果须要支持完全的 JavaEE 规范和繁芜的运用处景,GlassFish 和 WildFly 可能更加得当;如果须要轻量级和快速启动的做事器,Jetty 和 Undertow可 能更加得当;如果须要处理大量的并发要求或支持多种编程措辞和开拓技能,Apache HTTP Server可能更加得当。
在 Spring Boot 中,支持三种:Tomcat、Jetty 和 Undertow,默认利用 Tomcat。通过以上我们知道,这三种都是比较轻量和快速的做事器。在某些分外场景下,我们可以通过切换做事器来办理一些问题,比如当创造 Tomcat 存在漏洞,而不能直接升级版本时,可以先将做事器切换为 Jetty 或 Undertow 来规避。