【问题标题】:Is tomcat = apache (or other web server) + JavaEE? [duplicate]是tomcat = apache(或其他网络服务器)+ JavaEE? [复制]
【发布时间】:2019-03-29 09:42:05
【问题描述】:

所以我理解有两种服务器,第一种是web server(或http server),如nginx、apache、caddy,另一种是app server,如tomcat、undertow。我只是想知道一个 java 应用服务器是否等于一个普通的 web 服务器加上一个 j2ee 环境?或者事情没有那么简单,除了混合 java 环境之外,应用服务器还做了很多事情?

【问题讨论】:

  • 你读过the project introduction吗?如果是这样,您有什么具体问题?尽管 Tomcat(和所有其他 servlet 容器)确实有一个内置的 Web 服务器,但您通常在由专用 Web 服务器(nginx、Apache、IIS)提供支持的反向代理后面使用它。
  • Tomcat 是一个 servlet 容器,而不是一个“完整的”J2EE 服务器。

标签: java tomcat jakarta-ee webserver httpserver


【解决方案1】:

Http 服务器只实现Http 标准:表示接受Http request 并发送Http response
支持通过插件添加到它的php和其他语言(apache等)。 原始 Http 服务器仅支持静态资源,仅支持静态资源。

但在 java EE 世界中,Http 服务器也必须实现 java EE 规范。 java EE是一套规范。

如果 Http 服务器实现了我们拥有的所有规范 application server 就像 glassfish

如果 Http 服务器只实现 servlet 和 JSP 规范,我们有 servlet container(通常也称为 web 服务器),如 apache tomcat(来自 apache 基金会。它不是 apache web 服务器。它是另一个服务器) ,jetty 来自 eclipse 基金会。

任何与 java 兼容的服务器都是原始 Http 服务器加上一些已实现的规范。

【讨论】:

    【解决方案2】:

    作为一名经验丰富的 Java 开发人员,关于 Tomcat 与 Web 服务器加 J2EE 环境相同的断言令人讨厌,因为在它们的优化方式以及它们在现代架构中所扮演的角色方面,differences between Tomcat and Apache 具有重要意义甚至它们的物理安装方式。

    你可能是对的......

    话虽如此,您的断言实际上可能是正确的。从初学者的角度来看,服务器端编程的新手,将 Tomcat 认为只是一个添加了许多神奇功能的 Web 服务器并没有完全错误,即各种基于 Java 的 API Java EE/Jakarta EE 构建到它。

    Apache 和 Tomcat 的实践

    Tomcat 确实处理基于 http 的请求,如果需要,它可以提供文件服务,因此它可以完成双重任务。所以从简单的角度来看,这样想Tomcat也不是完全错误的。请记住,在现代架构中,Tomcat 和 Apache HTTP 服务器的角色是非常不同的。

    三层架构

    以下是两者如何在三层架构中协同工作:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多