应用服务器和web服务器之间的区别是什么?


当前回答

Web服务器专门处理HTTP/HTTPS请求。它使用HTTP/HTTPS协议向web提供内容。

应用服务器通过任意数量的协议(可能包括HTTP)为应用程序提供业务逻辑。应用程序可以像调用对象上的方法一样使用此逻辑。在大多数情况下,服务器通过一个组件API公开这个业务逻辑,例如在Java EE(Java平台,企业版)应用服务器上找到的EJB(Enterprise JavaBean)组件模型。重点是web服务器通过http协议公开所有内容,而应用程序服务器不限于此。因此,应用服务器提供比web服务器多得多的服务,web服务器通常包括:

A(专有或非专有)API负载平衡、故障转移。。。对象生命周期管理状态管理(会话)资源管理(例如,到数据库的连接池)

大多数应用程序服务器都将Web服务器作为其组成部分,这意味着App Server可以执行Web服务器所能执行的任何操作。此外,AppServer还具有支持应用程序级服务的组件和功能,如连接池、对象池、事务支持、消息服务等。

应用服务器可以(但不总是)在web服务器上运行以执行程序逻辑,然后可以由web服务器交付程序逻辑的结果。这是web服务器/应用程序服务器场景的一个示例。Microsoft世界中的一个很好的例子是Internet Information Server/SharePoint Server关系。IIS是一个web服务器;SharePoint是一个应用程序服务器。SharePoint位于IIS之上,执行特定的逻辑,并通过IIS提供结果。例如,在Java世界中,Apache和Tomcat也有类似的场景。

由于web服务器非常适合静态内容,而应用服务器非常适合动态内容,因此大多数生产环境都将web服务器作为应用服务器的反向代理。这意味着在服务页面请求时,静态内容(如图像/静态html)由解释请求的web服务器提供。使用某种过滤技术(主要是请求资源的扩展),web服务器识别动态内容请求并透明地转发到应用服务器。

此类配置的示例是Apache HTTP Server和BEA WebLogic Server。Apache HTTP服务器是Web服务器,BEA WebLogic是应用程序服务器。在某些情况下,服务器是紧密集成的,如IIS和.NET运行时。IIS是web服务器。当配备.NET运行时环境时,IIS能够提供应用程序服务


Web Server                               Programming Environment
Apache                                   PHP, CGI
IIS (Internet Information Server)        ASP (.NET)
Tomcat                                   Servlet
Jetty                                    Servlet

Application Server                       Programming Environment
WAS (IBM's WebSphere Application Server) EJB
WebLogic Application Server (Oracle's)   EJB
JBoss AS                                 EJB
MTS                                      COM+

其他回答

大多数情况下,这些术语Web服务器和应用服务器可以互换使用。

以下是Web Server和Application Server功能的一些关键区别:

Web服务器旨在为HTTP内容提供服务。App Server还可以提供HTTP内容,但不限于HTTP。它可以提供其他协议支持,如RMI/RPCWeb服务器主要设计用于提供静态内容,尽管大多数Web服务器都有插件来支持Perl、PHP、ASP、JSP等脚本语言,这些服务器可以通过这些语言生成动态HTTP内容。大多数应用程序服务器都将Web服务器作为其组成部分,这意味着App Server可以执行Web服务器所能执行的任何操作。此外,AppServer还具有支持应用程序级服务的组件和功能,如连接池、对象池、事务支持、消息服务等。由于web服务器非常适合静态内容,而应用服务器非常适合动态内容,因此大多数生产环境都将web服务器作为应用服务器的反向代理。这意味着在处理页面请求时,静态内容(如图像/静态HTML)由解释请求的web服务器提供。使用某种过滤技术(主要是请求资源的扩展),web服务器识别动态内容请求并透明地转发到应用服务器

此类配置的示例是Apache Tomcat HTTP Server和Oracle(以前称为BEA)WebLogic Server。Apache Tomcat HTTP服务器是Web服务器,Oracle WebLogic是应用程序服务器。

在某些情况下,服务器是紧密集成的,如IIS和.NET运行时。IIS是web服务器。当配备.NET运行时环境时,IIS能够提供应用程序服务。

不一定有明确的分界线。如今,许多程序结合了服务http请求(web服务器)和处理业务逻辑(app服务器)的元素

基本理解:

在客户端-服务器体系结构中

服务器:>服务请求的服务器。客户端:>使用服务。

Web服务器和应用程序服务器都是充当客户端服务器的软件应用程序。

他们的名字是根据他们的使用地点而来的。

Web server :> serve web content
           :> Like Html components
           :> Like Javascript components
           :> Other web components like images,resource files
           :> Supports mainly web protocols like http,https.
           :> Supports web Request & Response formats.

用法--我们需要低处理速率,常规处理实践涉及。例如:所有平面服务器通常都是现成的,只提供网络服务基于内容。

Application server :> Serve application content/component data(Business data).
                   :> These are special kind which are custom written 
                      designed/engineered for specific
                      purpose.some times fully unique in 
                      their way and stands out of the crowd. 

                   :> As these serves different types of data/response contents
                   :> So we can utilize these services for mobile client,web 
                      clients,intranet clients. 
                   :> Usually application servers are services offered on different 
                      protocols.    
                   :> Supports different Request& Response formats.

用法--我们需要多点处理,专门的处理技术涉及人工智能。例如:谷歌地图服务器、谷歌搜索服务器、谷歌文档服务器、微软365用于AI的微软计算机视觉服务器。

我们可以将它们假设为4层/n层体系结构中的层/层次结构。

 So they can provide 
                    load balancing,
                    multiple security levels,
                    multiple active points,
                    even they can provide different request processing environments.

请按照以下链接进行标准架构类比:

https://learn.microsoft.com/en-us/previous-versions/msp-n-p/ee658120(体积百分比3dpandp.10)

Web服务器和应用程序服务器之间的主要区别在于,Web服务器旨在为静态页面(如HTML和CSS)提供服务,而应用程序服务器负责通过执行服务器端代码(如JSP、Servlet或EJB)生成动态内容。

我应该使用哪一个?一旦您了解了web和应用程序服务器以及web容器之间的区别,就很容易确定何时使用它们。如果要提供静态网页,则需要像ApacheHTTPD这样的web服务器。如果您的Java应用程序只有JSP和Servlet来生成动态内容,那么您需要像Tomcat或Jetty这样的web容器。然而,如果您有使用EJB、分布式事务、消息传递和其他奇特功能的JavaEE应用程序,那么您需要一个成熟的应用程序服务器,如JBoss、WebSphere或Oracle的WebLogic。

Web容器是Web服务器的一部分,Web服务器是Application Server的一部分。

Web服务器由Web容器组成,而Application Server由Web容器和EJB容器组成。

以上所有这些都是非常简单的事情。应用服务器包含一个web服务器,与标准web服务器相比,应用服务器只需要对其进行更多的添加/扩展。如果您以TomEE为例:

CDI - Apache OpenWebBeans
EJB - Apache OpenEJB
JPA - Apache OpenJPA
JSF - Apache MyFaces
JSP - Apache Tomcat
JSTL - Apache Tomcat
JTA - Apache Geronimo Transaction
Servlet - Apache Tomcat
Javamail - Apache Geronimo JavaMail
Bean Validation - Apache BVal

您将看到Tomcat(Web容器/服务器)只是应用服务器库中的另一个工具。如果你愿意,你也可以在web服务器上获得JPA和其他技术,但应用服务器只是为了你的方便而打包所有这些东西。要完全归类为应用服务器,您基本上需要遵守某个标准列出的工具列表。