Web 服务器、Web 容器和应用程序服务器之间的区别

Posted

技术标签:

【中文标题】Web 服务器、Web 容器和应用程序服务器之间的区别【英文标题】:Difference between web server, web container and application server 【发布时间】:2012-09-23 06:49:09 【问题描述】:

请告诉我 。

【问题讨论】:

Difference between an application server and a servlet container? 和 ***.com/questions/936197/… 的可能重复项 感谢您的回复..我浏览了这些链接并想问您一件事。我们能说 Tomcat 是一个应用服务器吗 不,Tomcat 是一个 Servlet 容器。 【参考方案1】:

您的问题类似于以下内容:

What is the difference between application server and web server?

在 Java 中: Web Container 或 Servlet Container 或 Servlet Engine :用于管理 Servlet、JSP 等组件。它是 Web 服务器的一部分。

Web 服务器或 HTTP 服务器:能够处理 HTTP 请求、由客户端发送并以 HTTP 响应返回的服务器。

应用服务器或应用服务器:可以处理用户与组织的后端业务应用程序或数据库之间的所有应用程序操作。它经常被视为三层应用程序的一部分,具有: 表示层、逻辑层、数据层

【讨论】:

感谢您的回复..我们可以说Tomcat是一个应用程序服务器。 Apache Tomcat 是 Servlet Engine 和 IBM - WebSphere Application Server 是 Application Server 的一个示例 Apache HTTPD 是一个网络服务器 Apache HTTPD 是一个 Web 服务器,Apache Tomcat 是一个 Web 容器,其实就是 Apache HTTPD + 一个 Servlet Engine。具有先前配置的 Java 应用程序服务器将是:Apache Tomcat + EJB 容器 + API(JDBC、JNDI、JTA/JTS、JCA、JMX、JAAS、Java Mail、JMS)。 Web 容器只运行 WAR,应用服务器运行 EAR。【参考方案2】:

网络服务器: 它提供 HTTP 请求和 HTTP 响应。 它仅通过 HTTP 协议处理来自客户端的请求。 它包含 Web 容器。 Web 应用程序主要部署在 Web 服务器上。 例如:Servlet JSP

网络容器: 它维护 Servlet 对象的生命周期。 调用该 servlet 对象的服务方法。 传递 HttpServletRequest 和 HttpServletResponse 对象

应用服务器: 它拥有具有大业务逻辑的大型企业应用程序。 它是重量级或拥有重量级应用程序。 例如:EJB

【讨论】:

【参考方案3】:

Web 应用程序在 Web 服务器的 Web 容器中运行。 Web 容器通过提供命名上下文和生命周期管理的组件来提供运行时环境。一些 Web 服务器还可能提供额外的服务,例如安全性和并发控制。 Web 服务器可以与 EJB 服务器一起工作以提供其中一些服务。但是,Web 服务器不需要与 EJB 服务器位于同一台机器上。

Web 应用程序由 Web 组件和其他数据(例如 html 页面)组成。 Web 组件可以是 servlet、使用 JavaServer Pages™ 技术创建的 JSP 页面、Web 过滤器和 Web 事件侦听器。这些组件通常在 Web 服务器中执行,并可能响应来自 Web 客户端的 HTTP 请求。 Servlet、JSP 页面和过滤器可用于生成作为应用程序用户界面的 HTML 页面。它们还可用于生成 XML 或其他应用程序组件使用的其他格式数据。

来源:http://www.service-architecture.com/articles/application-servers/j2ee_web_server_or_container.html

【讨论】:

【参考方案4】:

Web 容器也称为 Servlet 容器,是与 Java servlet 交互的 Web 服务器的组件。 Web 容器负责管理 servlet 的生命周期,将 URL 映射到特定 servlet 并确保 URL 请求者具有正确的访问权限。

【讨论】:

【参考方案5】:

Web 容器和应用服务器之间的主要区别在于,大多数 Web 容器(例如 Apache Tomcat)只实现了基本的 JSR,例如 Servlet、JSP、JSTL,而应用服务器实现了整个 Java EE 规范。 每个应用服务器都包含 Web 容器。

【讨论】:

【参考方案6】:

Web 容器 + HTTP 请求处理 = WebServer

Web 服务器 + EJB + (Messaging + Transactions+ etc) = ApplicaitonServer

【讨论】:

【参考方案7】:

Web 容器负责为 Web 应用程序提供运行时环境。它包含提供命名上下文和管理 Web 应用程序生命周期的组件。 Web 容器是 Web 服务器的一部分,它们通常处理用户请求并发送静态响应。

Servlet 容器是 JSP 创建的组件所在的容器。他们基本上负责根据用户请求提供动态内容。基本上,Web 容器会根据用户请求回复静态内容,但 Servlet 可以创建动态页面。

【讨论】:

【参考方案8】:

Servlet容器的基本思想是使用Java在服务器端使用Servlet和JSP动态生成网页。因此,servlet 容器本质上是与 servlet 交互的 Web 服务器的一部分。

【讨论】:

以上是关于Web 服务器、Web 容器和应用程序服务器之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

各种容器和服务器之间的区别和联系

如何实现java实现web服务器之间转换?

彻底吃透Web服务器,Web容器,Web应用程序服务器与反向代理

一文看懂web服务器应用服务器web容器反向代理服务器区别与联系

干货分享一文看懂Web服务器应用服务器Web容器反向代理服务器区别与联系

Web服务器应用服务器Web容器反向代理服务器区别与联系