作为一个门外汉,我该如何理解 Web 服务器和应用服务器之间的区别呢?如果您能够用一个基于 Java 的 Web 应用程序举例说明,而且用“简单”的语言来表述,那就太好了。
另外,当我们说 Weblogic 的时候,它是否仅仅是一个 Web 服务器?
作为一个门外汉,我该如何理解 Web 服务器和应用服务器之间的区别呢?如果您能够用一个基于 Java 的 Web 应用程序举例说明,而且用“简单”的语言来表述,那就太好了。
另外,当我们说 Weblogic 的时候,它是否仅仅是一个 Web 服务器?
网页服务器是处理HTTP请求和响应的工具。
应用服务器(例如WebLogic、WebSphere、JBoss AS、Glassfish等)通常包括网页服务器,但还添加了更多功能。最重要的是它可以管理对象。无论是servlets(Servlet容器)、EJBs(ejb容器)、JMS listeners等。
Web服务器只能执行Web应用程序,如servlet和JSP,并且只有一个称为Web容器的容器用于解释/执行Web应用程序。
应用服务器可以执行企业应用程序,即(servlet,JSP和EJB),它具有两个容器:1. Web容器(用于解释/执行servlet和jsps)2. EJB容器(用于执行EJB)。它可以执行负载平衡,事务划分等操作。
我认为定义因人而异。在广义上下文中,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)容器。除了之前的回答,Weblogic是应用服务器而不仅仅是Web服务器。
基本上,如果我们说Web服务器和应用服务器之间的主要区别是这些服务器所使用的协议。
Web服务器 - 它使用HTTP和HTTPS等协议。此服务器的示例是Apache。对于Web服务器,您可以使用JSP、Servlet。
应用服务器 - 它可以使用任何协议。例如JBOSS。在应用服务器上,我们托管EJB、Web服务或任何业务逻辑。