【问题标题】:Is Tomcat really a web server?Tomcat 真的是 Web 服务器吗?
【发布时间】:2021-04-28 22:27:28
【问题描述】:

我正在学习应用程序服务器和 Web 服务器之间的区别,我阅读了这些区别

  1. 在 Web 服务器中,不支持多线程。
  2. Web 服务器本身不支持事务或数据库连接池

实际上,我的 java 应用程序部署在 Tomcat 服务器中,它实际上支持多线程、事务等。但我也读到 tomcat 是一个 Web 服务器。那么这怎么可能呢?

【问题讨论】:

  • 这可能是因为您阅读的某些内容不真实。不要相信您在互联网上阅读的所有内容。此外,这是一种错误的二分法,因为应用服务器(通常理解为)也是(通常)Web 服务器。
  • 你在哪里读到那个的定义?在非常高的层次上,Application Server 是托管应用程序的服务器,Web Server 是托管网站的服务器,即用于处理 HTTP 连接的服务器。没有什么可以说服务器不能具有高级功能来帮助处理事务和数据库连接池,或者它不能执行多线程。

标签: java tomcat server webserver application-server


【解决方案1】:

曾几何时,网络是静态的。这意味着网络服务器能够通过 http 从文件系统提供文件,就像 FTP 服务器通过 FTP 提供文件一样。第一次尝试动态化是 CGI 脚本,这对小型项目很有用,但对于较大的项目,它们仍然会受到影响——在性能和代码维护方面。

其中一种选择是让网络服务器将请求转发到在其他地方/在其他进程中运行的应用程序。一个这样的例子是 JServ,它是第一个 servlet 容器。它能够运行 servlet 但不能提供静态文件。所以你只能用它来处理动态内容。

你去吧:你有一个用于静态文件的网络服务器,以及一个用于处理动态内容的应用程序(服务器)。

不久之后,有人创建了一个可以提供静态文件的 servlet - 但是许多网站仍然在区分,因为使用普通的网络服务器提供静态文件会花费更少的资源。

今天的资源开销并不那么痛苦,因此您可以使用应用程序服务器来替代 Web 服务器。并且仍然在应用程序服务器之前通常使用网络服务器,只是为了减少网络上的外观,从而减少可能的攻击媒介。

【讨论】:

    猜你喜欢
    • 2010-12-25
    • 1970-01-01
    • 2011-01-29
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 2017-10-31
    • 2015-10-12
    • 1970-01-01
    相关资源
    最近更新 更多