应用服务器和Web服务器有什么区别?

893

应用服务器和Web服务器有什么区别?

28个回答

11
在Java术语中,还有一个“Web容器”(或更严格地说是“Servlet容器”)。它处于Web服务器和应用服务器之间。在Java术语中,Web容器是一种应用服务器,基本上实现Java EE的JSP / Servlet部分,缺少Java EE的几个核心部分,如EJB支持。Apache Tomcat是一个例子。

10

应用服务器通常被设计和部署用于支持更长时间运行的、资源开销较大的进程。

Web服务器一般用于短暂而不需要过多资源的爆发式请求,主要是为了提供 web 流量服务。


10

一个 Web 服务器运行 HTTP 协议以提供 Web 页面。应用服务器可以(但并不总是)在 Web 服务器上运行以执行程序逻辑,然后 Web 服务器可传递其结果。这就是 Web 服务器/应用服务器场景的一个例子。

在微软世界中的一个很好的例子是 Internet Information Server / SharePoint Server 关系。IIS 是一个 Web 服务器;SharePoint 是一个应用服务器。SharePoint 位于 IIS “之上”,执行特定逻辑,并通过 IIS 提供结果。

在 Java 世界中,例如 Apache 和 Tomcat 就存在类似的情况。


9
一个应用服务器是一台机器(实际上是在某台机器上运行的可执行进程),它“监听”(使用任何通道,使用任何协议)客户端对其提供的任何服务的请求,并根据这些请求执行某些操作。(可能涉及对客户端的响应,也可能不涉及)
一个Web服务器是在一台机器上运行的进程,专门使用其中一个“互联网”协议(http、https、ftp等)在TCP/IP通道上“监听”,并根据这些传入的请求执行其任务... 通常情况下(最初定义时),它从服务器上的静态html文件获取/生成并返回一个html网页给客户端,或者根据传入客户端请求中的参数动态构建。

4
请问您能否给出沐浴用例的例子? - frewper
你能否提供两个例子?谢谢。 - LearningMath

8
一方面,Web服务器通过HTTP协议提供Web内容(HTML和静态内容)。另一方面,应用服务器是一个容器,可以在其中构建和公开业务逻辑和流程,通过各种协议(包括n层体系结构中的HTTP)向客户端应用程序提供服务。
因此,应用服务器通常提供比Web服务器更多的服务,包括:
- 一个(专有或非专有的)API - 对象生命周期管理, - 状态管理(会话), - 资源管理(例如连接池到数据库), - 负载平衡,故障转移等
据我所知,ATG Dynamo是90年代末最早的应用服务器之一(根据上述定义)。在2000年初,一些专有的应用服务器如ColdFusion(CFML AS),BroadVision(服务器端JavaScript AS)等处于统治地位。但是在Java应用服务器时代,没有一个真正存活下来。

6

最大的区别是Web服务器处理HTTP请求,而应用服务器将在任意数量的协议上执行业务逻辑。


6

实际上,Apache是一个Web服务器,而Tomcat是应用服务器。当有HTTP请求发送到Web服务器时,静态内容将由Web服务器发送回浏览器。如果需要执行逻辑,则将该请求发送到应用服务器。在处理完逻辑后,响应将发送回Web服务器并发送给客户端。


6

基础理解:

在客户端服务器架构中

服务器 :> 提供服务请求。

客户端 :> 消费服务。

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.

Usage --

      we require low processing rates,

      regular processing practices involves.

Eg: All flat servers generally available ready-made which serves only web based content.

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.

Usage --

      we require multi point processing,

      specialized processing techniques involves like for AI.

Eg: Google maps servers, Google search servers,Google docs servers,Microsoft 365 servers,Microsoft computer vision servers for 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(v%3dpandp.10)


4
以上所有内容只是在过度复杂化一些非常简单的东西。应用服务器包含一个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和其他技术,但应用程序服务器只是为了方便打包了所有这些东西。要完全被归类为应用程序服务器,你基本上需要遵守某个标准制定的一系列工具清单。

3

现在已经没有必然的明确分界线。许多程序现在同时包含Web服务器(服务HTTP请求)和应用服务器(处理业务逻辑)的元素。


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