Web服务器和应用服务器的区别

10

作为一个门外汉,我该如何理解 Web 服务器和应用服务器之间的区别呢?如果您能够用一个基于 Java 的 Web 应用程序举例说明,而且用“简单”的语言来表述,那就太好了。

另外,当我们说 Weblogic 的时候,它是否仅仅是一个 Web 服务器?


https://dev59.com/J3NA5IYBdhLWcg3wgeEd?rq=1 - Unni Kris
5个回答

10

网页服务器是处理HTTP请求和响应的工具。

应用服务器(例如WebLogic、WebSphere、JBoss AS、Glassfish等)通常包括网页服务器,但还添加了更多功能。最重要的是它可以管理对象。无论是servlets(Servlet容器)、EJBs(ejb容器)、JMS listeners等。


1
完全同意,再加一些例子:JBoss、Weblogic、Websphere、Glassfish是应用服务器,Apache Tomcat是Servlet容器,而“Apache HTTP Server”是Web服务器。 - Zemzela
有趣的是,我列出了与您完全相同的四个应用服务器,而没有看到您的评论 :) - Bozho

1

Web服务器只能执行Web应用程序,如servlet和JSP,并且只有一个称为Web容器的容器用于解释/执行Web应用程序。

应用服务器可以执行企业应用程序,即(servlet,JSP和EJB),它具有两个容器:1. Web容器(用于解释/执行servlet和jsps)2. EJB容器(用于执行EJB)。它可以执行负载平衡,事务划分等操作。


1

我认为定义因人而异。在广义上下文中,Web服务器是一台可以接收传入的Web请求并了解如何处理和响应它们的服务器。有些请求是静态的(html文件、图像等),有些是动态的。对于动态请求,Web服务器将知道如何路由请求的处理,可能是JSP页面或Java Servlet、PHP脚本、Perl CGI脚本等等。

虽然在这种情况下,“Web服务器”执行动态处理程序,但不被认为包括任何支持动态处理程序的中间件功能。

相比之下,应用服务器是一个提供某种类型的中间件支持的通用执行环境。例如EJB容器或内置于Windows中的.NET框架(其中Windows本身就是“应用服务器”)。并没有固有的要求应用服务器与Web请求有任何关系(尽管许多应用服务器都有),它只是一种通用的执行上下文和容器,适用于任何类型的应用程序,并提供某种形式的附加中间件支持。

在纯粹的网络中心环境下,许多人会将静态内容和动态内容区分开来。按照这个定义,“Web服务器”只能处理静态信息本身的请求,并将动态内容的请求传递给“应用服务器”。例如,Apache httpd是一个Web服务器,而Tomcat是一个应用服务器。IIS则是两者的结合体。在Java Web世界中,应用服务器可以是Servlet容器(如Tomcat),也可以是完整的Java EE容器(如JBoss、WebLogic或WebSphere),除了Servlet容器外,还提供Java EE中间件支持(EJB)容器。

0

除了之前的回答,Weblogic是应用服务器而不仅仅是Web服务器。


0

基本上,如果我们说Web服务器和应用服务器之间的主要区别是这些服务器所使用的协议。

Web服务器 - 它使用HTTP和HTTPS等协议。此服务器的示例是Apache。对于Web服务器,您可以使用JSP、Servlet。

应用服务器 - 它可以使用任何协议。例如JBOSS。在应用服务器上,我们托管EJB、Web服务或任何业务逻辑。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接