672

Apache HTTP Server 和 Apache Tomcat 在功能方面有什么区别?

我知道 Tomcat 是用 Java 编写的,HTTP Server 是用 C 编写的,但除此之外,我真的不知道它们是如何区分的。它们有不同的功能吗?

4

8 回答 8

494

Apache Tomcat 用于部署 Java Servlet 和 JSP。因此,在您的 Java 项目中,您可以构建您的 WAR(Web ARchive 的缩写)文件,然后将其放入 Tomcat 的部署目录中。

所以基本上 Apache 是一个 HTTP 服务器,服务于 HTTP。Tomcat 是一个服务于 Java 技术的 Servlet 和 JSP 服务器。

Tomcat 包括 Catalina,它是一个 servlet 容器。最后,servlet 是一个 Java 类。JSP 文件(类似于 PHP 和较旧的 ASP 文件)生成为 Java 代码(HttpServlet),然后由服务器编译为 .class 文件并由 Java 虚拟机执行。

于 2008-08-27T17:03:29.290 回答
121

除了上面的好答案之外,我认为应该说 Tomcat 内置了自己的 HTTP 服务器,并且在提供静态内容方面也具有完整的功能。根据您的 java 虚拟机配置,它实际上可以胜过通过 apache 中的传统连接器,例如 mod_proxy 和 mod_jk。

也就是说,一个完全优化的 Tomcat 服务器应该能够快速提供静态文件,如果除了静态内容之外,您还有 Java servlet、JSP 和 ColdFusion 文件,您可能会发现 Tomcat 本身就做得很好。

于 2008-09-20T18:21:33.480 回答
84
  1. Apache 是一个通用的 http 服务器,它支持许多 Tomcat 不支持的高级选项。
  2. 尽管 Tomcat 可以用作通用 http 服务器,但您也可以设置 Apache 和 Tomcat 以与 Apache 一起工作,提供静态内容并将动态内容的请求转发给 Tomcat。
于 2012-07-06T09:51:07.477 回答
29

Tomcat 主要是一个应用服务器,它为服务器上定制的 Java servlet 或 JSP 文件提供请求。它通常与 Apache HTTP 服务器一起使用(至少根据我的经验)。使用它来手动处理传入的请求。

HTTP 服务器本身最适合提供静态内容... html 文件、图像等。

于 2008-08-27T17:02:32.460 回答
21

apache 服务器是一个 http 服务器,可以服务任何简单的 http 请求,而 tomcat 服务器实际上是一个 servlet 容器,可以服务 java servlet 请求。

Web 服务器 [apache] 处理 Web 客户端(Web 浏览器)请求并将其转发给 servlet 容器 [tomcat],容器处理请求并将响应发送到 Web 服务器转发给 Web 客户端 [浏览器]。

您也可以查看此链接以获得更多说明:-

https://sites.google.com/site/sureshdevang/servlet-architecture

另请检查此答案以进行进一步研究:-

https://softwareengineering.stackexchange.com/a/221092

于 2012-12-03T12:06:50.003 回答
13

如果您使用 Java 技术(Servlet/JSP)来制作 Web 应用程序,您可能会使用 Apache Tomcat。但是,如果您使用 Perl、PHP 或 ruby​​ 等其他技术,则使用 Apache HTTP Server 会更好(更容易)。

于 2012-03-21T18:33:50.837 回答
3

嗯,Apache 是 HTTP 网络服务器,而 Tomcat 也是 Servlet 和 JSP 的网络服务器。此外,Apache 实时优于 Apache Tomcat

于 2012-09-24T10:01:06.297 回答
-2

Apache 是一个用作 HTTP 的 HTTP Web 服务器。

Apache Tomcat 是一个 java servlet 容器。它的功能与 Web 服务器相同,但经过定制以执行 java servlet 和 JSP 页面。

于 2012-03-28T15:24:21.533 回答