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

时间:2009-06-01 18:57:27

标签: webserver terminology application-server

应用程序服务器和Web服务器之间有什么区别?

28 个答案:

答案 0 :(得分:542)

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

以下是Web Server和Application Server功能的一些主要差异:

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

此类配置的示例是Apache Tomcat HTTP Server和Oracle(以前称为BEA)WebLogic Server。 Apache Tomcat HTTP Server是Web Server,Oracle WebLogic是Application Server。

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

答案 1 :(得分:128)

这是一个详细的答案,有些场景可以清楚地理解差异,相似性以及两者如何协同工作

Application Server 这个术语有时与 Web服务器混合在一起。虽然Web服务器主要处理 HTTP协议,但应用程序服务器会处理几种不同的协议,包括不限于HTTP

Web服务器的主要工作是显示网站内容,应用服务器负责逻辑,用户与用户之间的互动显示内容。应用程序服务器与Web服务器协同工作,其中一个显示,另一个与之交互。

在服务器及其客户端之间来回传递的信息不仅限于简单的显示标记,还包括两者之间的交互。

在大多数情况下,服务器通过组件API 创建交互,例如 J2EE(Java 2平台) {{3 (Enterprise JavaBean)和其他不同的应用程序软件模型。

enter image description here

示例:

了解应用程序服务器与Web服务器一起工作的方案与不存在应用程序服务器的方案之间的差异的最佳方法是通过在线商店。

场景1:没有应用服务器的Web服务器

您的在线商店只有一个Web服务器而没有应用程序服务器。该网站将提供一个显示,您可以从中选择产品。提交查询时,站点会执行查找并将HTML结果返回给其客户端。 Web服务器将您的查询直接发送到数据库服务器(请耐心等待,我将在下一个块中解释这一点)并等待响应。收到后,Web服务器会将响应制定为HTML文件并将其发送到您的Web浏览器。每次运行查询时,都会发生服务器和数据库服务器之间的这种来回通信。

方案2:具有应用程序服务器的Web服务器

如果您要运行的查询先前已经完成并且此后没有数据发生更改,则服务器将生成结果,而不必将请求发送到数据库服务器。这允许实时查询,其中第二客户端可以访问相同的信息并接收实时可靠的信息,而无需向数据库服务器发送另一个重复的查询。服务器基本上充当数据库服务器和Web服务器之间的中间件。这允许在第一种情况下拉出的信息可重复使用,因为此信息嵌入在特定的"定制的" HTML页面,这不是一个可重用的过程。第二个客户端将不得不再次请求信息并接收另一个HTML嵌入页面,其中包含所请求的信息 - 效率极低。更不用说这种类型的服务器非常灵活,因为它能够管理自己的资源,包括安全性,事务处理,消息传递和资源池。

为了支持各种复杂的任务,该服务器必须具有内置冗余,强大的处理能力和大量的RAM来处理它实时提取的所有数据。

希望这有帮助。

答案 2 :(得分:124)

这两个术语都非常通用,一个术语包含另一个术语,反之亦然。

  • 网络服务器:使用http协议向网络投放内容。

  • 应用程序服务器:托管并公开业务逻辑和流程。

我认为主要的一点是Web服务器通过http协议公开所有内容,而应用服务器并不局限于此。

也就是说,在许多情况下,您会发现Web服务器正用于创建应用程序服务器的前端,也就是说,它公开了一组允许用户与业务规则交互的Web页面找到了应用服务器。

答案 3 :(得分:57)

正如Rutesh和jmservera指出的那样,区别是模糊的。从历史上看,它们是不同的,但到了90年代,这两个先前不同的类别混合了功能并有效地融合。在这一点上,可能最好想象“App Server”产品类别是“Web服务器”类别的严格超集。

有些历史。在Mosaic浏览器和超链接内容的早期,发展了这个称为“Web服务器”的东西,它通过HTTP提供网页内容和图像。大多数内容都是静态的,HTTP 1.0协议只是一种传送文件的方式。快速地,“Web服务器”类别演变为包括CGI功能 - 有效地在每个Web请求上启动流程以生成动态内容。 HTTP也变得成熟,产品变得更加复杂,具有缓存,安全性和管理功能。随着技术的成熟,我们从Kiva和NetDynamics获得了公司特定的基于Java的服务器端技术,这些技术最终都合并到了JSP中。微软在1996年将ASP添加到Windows NT 4.0中。静态Web服务器已经学到了一些新的技巧,因此对于许多场景来说它是一个有效的“应用服务器”。

在并行类别中,应用服务器已经发展并存在了很长时间。公司为Unix提供产品,如Tuxedo,TopEnd,Encina,这些产品源自大型机应用程序管理和IMS和CICS等监控环境。微软的产品是Microsoft Transaction Server(MTS),后来演变为COM +。这些产品中的大多数都指定了“封闭式”特定于产品的通信协议,以将“胖”客户端与服务器互连。 (对于Encina,通信协议是DCE RPC;对于MTS,它是DCOM;等等)在1995/96,这些传统的应用服务器产品开始嵌入基本的HTTP通信功能,首先是通过网关。线条开始模糊。

Web服务器在处理更高负载,更多并发性和更好功能方面变得越来越成熟。应用服务器提供了越来越多基于HTTP的通信功能。

此时“app server”和“web server”之间的界限是模糊的。但人们继续以不同的方式使用这些术语,这是一个重点。当有人说“网络服务器”时,您经常会想到以HTTP为中心的Web UI,面向应用程序。当有人说“应用程序服务器”时,您可能会认为“负载较重,企业功能,交易和排队,多渠道通信(HTTP +更多)。但通常它是同一产品,满足两组工作负载要求。”

  • WebSphere,IBM的“app server”拥有自己的捆绑式Web服务器。
  • WebLogic,另一个传统的应用服务器,同样。
  • Windows,即Microsoft的App Server(除了作为其文件和打印服务器,媒体服务器等),捆绑IIS。

答案 4 :(得分:46)

网络服务器

运行python -m 'SimpleHTTPServer'并转到http://localhost:8080。您看到的是其工作中的Web服务器。服务器只是通过计算机上存储的HTTP提供文件。关键是所有这些都是在HTTP协议之上完成的。例如,还存在FTP服务器,它们完全相同(提供存储的文件)但在不同的协议之上。

应用程序服务器

假设我们有一个像下面这样的小应用程序(来自Flask的片段)。

@app.route('/')
def homepage():
    return '<html>My homepage</html>'

@app.route('/about')
def about():
    return '<html>My name is John</html>'

小示例程序将网址/映射到函数homepage(),将/about映射到函数about()

要运行此代码,我们需要一个应用程序服务器(例如Gunicorn) - 一个程序或模块,可以侦听来自客户端的请求并使用我们的代码,动态返回一些内容。在示例中,我们只返回一些非常糟糕的HTML。

所有其他人谈论的业务逻辑是什么?好吧,由于URL映射到我们的代码库中的某个地方,我们假设显示了一些关于我们的程序如何工作的逻辑。

<强>重新盖上

网络服务器 - 提供存储在某处的文件(最常见的是.css,.html,.js)。常见的Web服务器是Apache,Nginx甚至是Python的SimpleHTTPServer。

应用程序服务器 - 提供动态生成的文件。基本上大多数Web服务器都有某种插件,甚至还带有内置功能。还存在严格的应用服务器,如Gunicorn(Python),Unicorn(Ruby),uWSGI(Python)等。

请注意,您实际上可以使用应用程序服务器的代码构建Web服务器。在某些情况下,您可以在开发期间完成此操作,在此期间您不希望在计算机上运行大量不同的服务器。

答案 5 :(得分:35)

许多人之前说过,Web服务器处理HTTP请求,而应用程序服务器处理分布式组件的请求。 因此,理解差异的最简单方法可能是将两种产品与它们提供的编程环境进行比较。

Web服务器 - &gt;编程环境

IIS:ASP(.NET)

Tomcat:Servlet

Jetty:Servlet

Apache:Php,CGI

应用程序服务器 - &gt;编程环境

MTS:COM +

WAS:EJB

JBoss:EJB

WebLogic Application Server:EJB

关键的区别在于应用服务器支持一些分布式组件技术,提供远程调用和分布式事务等功能,如Java世界中的 EJB COM + < / strong>在Microsoft平台上。 Http服务器通常支持一些更简单的编程环境,通常是脚本,如基于Microsoft或基于Servlet的ASP(.NET),包括JSP和许多其他Java(如果是Apache)的PHP和PHP和CGI。

以前在应用程序服务器领域中的其他功能(如负载平衡,群集,会话故障转移,连接池等)也可以直接或通过某些第三方产品在Web服务器上使用。

最后,值得注意的是,使用像Spring Framework这样的“轻量级容器”进一步扭曲了这种情况,它通常以更简单的方式补充应用程序服务器的目的,并且没有应用程序服务器基础结构。由于应用程序中的分发方面正在从分布式组件转向服务范例和SOA架构,因此传统应用程序服务器的空间越来越少。

答案 6 :(得分:17)

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

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

  • A(专有或非专有)API
  • 负载平衡,故障转移......
  • 对象生命周期管理
  • 国家管理(会议)
  • 资源管理(例如,连接到数据库的池)

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

应用程序服务器可以(但不总是)在Web服务器上运行以执行程序逻辑,然后Web服务器可以提供其结果。这是Web服务器/应用程序服务器方案的一个示例。 Microsoft世界中的一个很好的例子是Internet Information Server / SharePoint Server关系。 IIS是一个Web服务器; SharePoint是一个应用程序服务器。 SharePoint位于IIS的“顶部”,执行特定逻辑,并通过IIS提供结果。 例如,在Java世界中,Apache和Tomcat就有类似的情况。

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

此类配置的示例是Apache HTTP Server和BEA WebLogic Server。 Apache HTTP Server是Web Server,BEA WebLogic是Application Server。 在某些情况下,服务器紧密集成,例如IIS和.NET Runtime。 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+

答案 7 :(得分:15)

简而言之,web server是通过http向用户提供网页的服务器。 application server是承载系统业务逻辑的服务器。它通常托管长时间运行/批处理进程和/或不供人类使用的互操作服务(REST / JSON服务,SOAP,RPC等)。

答案 8 :(得分:15)

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

我应该使用哪一个?
一旦您了解了Web和应用程序服务器与Web容器之间的区别,就可以很容易地确定何时使用它们。 如果您正在提供静态网页,则需要像Apache HTTPD这样的web server。如果你有一个只有JSP和Servlet的Java应用程序来生成动态内容,那么你需要web containers像Tomcat或Jetty。虽然,如果你有使用EJB,分布式事务,消息传递和其他花哨功能的Java EE应用程序,那么你需要一个像JBoss,WebSphere或Oracle WebLogic这样的完全成熟的application server

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

Application Server

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

答案 9 :(得分:8)

在Java术语中还有一个: Web容器(或者更严格的是,servlet容器)。比如,在Web服务器和应用程序服务器之间。 Java术语中的Web容器是一个应用程序服务器,它基本上实现Java EE的JSP / Servlet部分,并且缺少Java EE的几个核心部分,例如EJB支持。一个例子是Apache Tomcat。

答案 10 :(得分:8)

Web服务器运行HTTP协议来提供网页。应用程序服务器可以(但不总是)在Web服务器上运行以执行程序逻辑,然后Web服务器可以提供其结果。这是Web服务器/应用程序服务器方案的一个示例。

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

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

答案 11 :(得分:8)

通常设计和部署应用程序服务器是为了促进更长时间运行的进程,这也会增加资源。

Web服务器通常用于非资源密集型的短突发。这主要是为了方便提供基于网络的流量。

答案 12 :(得分:7)

第一方面,Web服务器通过HTTP协议提供Web内容(HTML和静态内容)。另一方面,应用程序服务器是一个容器,您可以通过各种协议(包括n层体系结构中的HTTP)在其上构建和公开业务逻辑和进程。

因此,应用服务器提供的服务远多于通常包括以下内容的Web服务器:

  • A(专有或非专有)API
  • 对象生命周期管理,
  • 国家管理(会议),
  • 资源管理(例如,连接到数据库的池),
  • 负载平衡,故障转移......

AFAIK,ATG Dynamo是90年代后期第一个应用服务器之一(根据上面的定义)。在2000年初,它是一些专有应用程序服务器的统治,如ColdFusion(CFML AS),BroadVision(服务器端JavaScript AS)等。但是没有一个真正幸免于Java应用程序服务器时代。

答案 13 :(得分:7)

这两者之间的界限越来越薄了。

应用程序服务器向客户端公开业务逻辑。因此它的应用程序服务器包含一组方法(不一定,甚至可以是允许许多人在其上运行软件的联网计算机)来执行业务逻辑。因此它只会输出所需的结果,而不是HTML内容。 (类似于方法调用)。所以它不是严格基于HTTP的。

但Web服务器将HTML内容传递给Web浏览器(严格基于HTTP)。 Web服务器只能处理静态Web资源,但服务器端脚本的出现也帮助Web服务器处理动态内容。 Web服务器接收请求并将其定向到脚本(PHP,JSP,CGI脚本等)以创建要发送到客户端的HTML内容。然后,Web服务器知道如何将它们发送回客户端。因为这是网络服务器真正知道的。

话虽如此,如今开发人员同时使用这两者。 在Web服务器接收请求然后调用脚本来创建HTML的情况下,BUT脚本将再次调用应用程序服务器LOGIC(例如,检索事务详细信息)以填充HTML内容。

因此,在这种情况下,两个服务器都得到了有效使用。

因此...... 我们可以相当安全地说,在当今,在大多数情况下,Web服务器被用作应用程序服务器的子集。但戏剧性并非如此。

我读过很多关于这个主题的文章,发现this文章非常方便。

答案 14 :(得分:5)

应用程序服务器是一台机器(实际上是在某台机器上运行的可执行进程),它“监听”(在任何通道上,使用任何协议),来自客户端对其提供的任何服务的请求,然后根据那些要求。 (可能会或可能不会涉及对客户的回应)

Web服务器正在一台机器上运行,该机器使用“互联网”协议(http,https,ftp等)专门在TCP / IP通道上“监听”,并根据这些协议做任何事情。传入请求...通常,(原始定义),它获取/生成并返回到客户端的html网页,从服务器上的静态html文件获取,或者根据传入客户端请求中的参数动态构造。

答案 15 :(得分: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和其他技术,但应用程序服务器只是为了您的方便而打包所有这些东西。要完全归类为app服务器,您基本上需要遵守某些标准所规定的工具列表。

答案 16 :(得分:3)

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

答案 17 :(得分:3)

实际上Apache是​​一个Web服务器,而Tomcat是一个应用服务器。当HTTP请求进入Web服务器时。然后静态内容通过Web服务器发送回浏览器。是否有逻辑要做,然后该请求发送到应用程序服务器。在处理逻辑之后,响应发送到Web服务器并发送给客户端。

答案 18 :(得分:2)

没有明确的分界线。如今,许多程序都结合了两者的元素 - 提供http请求(Web服务器)和处理业务逻辑(app server)

答案 19 :(得分:2)

  • Web服务器:对于每个URL,它将返回一个文件。这就是全部。该文件是静态内容,也就是说,在您发出请求之前,该文件已存储在服务器中的某个位置。最受欢迎的Web服务器是 apache http nginx
  • 应用服务器:对于每个URL,它运行一些用某种语言编写的代码,生成一个响应并返回。响应不预先存在,它是针对您的特定请求生成的,即它是动态内容。每种语言的应用程序服务器都不同。一些流行的示例是 tomcat / jetty (适用于Java), uwsgi / gunicorn (适用于python)。

您访问的几乎每个页面都使用这两个页面。静态内容(例如图像,视频)由Web服务器提供,其余内容(您和其他用户之间不同的部分)由应用程序服务器生成。

答案 20 :(得分:2)

来自https://en.wikipedia.org/wiki/Web_server

Web服务器是一种通过HTTP处理请求的计算机系统,HTTP是用于在万维网上分发信息的基本网络协议。该术语可以指整个系统,也可以指接受和监督HTTP请求的软件

来自https://en.wikipedia.org/wiki/Application_server#Application_Server_definition

应用服务器在Web服务器后面运行(例如Apache或Microsoft Internet信息服务(IIS))并且(几乎总是)在SQL数据库(例如PostgreSQL,MySQL或Oracle)之前运行

Web应用程序是在应用程序服务器上运行的计算机代码,使用应用程序服务器支持的语言编写,并调用应用程序服务器提供的运行时库和组件

答案 21 :(得分:2)

应用程序服务器和Web服务器都用于托管Web应用程序。另一方面,Web Server处理Web容器。ApplicationServer处理Microsoft dot Net的Web容器以及EJB(Enterprise JavaBean)容器或COM +容器。

Web服务器旨在提供HTTP静态内容(例如HTML,图像等),而动态内容具有用于支持脚本语言(如Perl,PHP,ASP,JSP等)的插件,并且仅限于HTTP协议。下面的服务器可以生成动态HTTP内容。

Web服务器的编程环境:

IIS:ASP(.NET)

Apache Tomcat:Servlet

码头:Servlet

Apache:PHP,CGI

Application Server可以执行任何Web Server所能提供的功能,并且可以使用任何协议进行侦听,并且App Server具有支持连接池,对象池,事务支持,消息传递服务等应用程序级服务的组件和功能。

应用服务器的编程环境:

MTS:COM +

WAS:EJB

JBoss:EJB

WebLogic应用服务器:EJB

答案 22 :(得分:1)

IBM makes a really nice comparison between the two

<块引用>

根据严格的定义,Web 服务器是应用服务器的公共子集。

网络服务器提供静态网络内容(例如 HTML 页面、文件、图像、视频),主要是为了响应来自网络浏览器的超文本传输​​协议 (HTTP) 请求。

应用服务器通常也可以提供 Web 内容,但它的主要工作是实现最终用户客户端和服务器端应用程序代码之间的交互——这些代码代表通常称为业务逻辑的代码——生成和交付动态内容,例如交易结果、决策支持或实时分析。应用服务器的客户端可以是应用自己的最终用户界面、Web 浏览器或移动应用,客户端与服务器之间的交互可以通过任意数量的通信协议进行。

然而,在实践中,网络服务器和应用程序服务器之间的界限变得更加模糊,尤其是随着网络浏览器成为首选的应用程序客户端,以及用户对网络应用程序和网络应用程序性能的期望不断增长。

大多数网络服务器都支持脚本语言(例如 ASP、JSP、PHP、Perl)的插件,使网络服务器能够根据服务器端逻辑生成动态内容。越来越多的应用服务器不仅包含 Web 服务器功能,而且使用 HTTP 作为其主要协议并支持其他协议(例如,CGI 和 CGI​​ 变体)以与 Web 服务器交互。它们还允许 Web 应用程序利用反向代理、集群、冗余和 load balancing 等服务,这些服务可提高性能和可靠性,并使开发人员能够减少对基础架构的关注,而将更多的精力放在编码上。

更令人困惑的是,许多 Web 服务器和一些应用程序服务器被称为或自称为 Web 应用程序服务器

最重要的是,当今最流行的 Web 服务器和应用程序服务器是两者的混合体。您今天使用的大多数日益丰富的应用程序都具有静态 Web 内容和动态应用程序内容的组合,通过 Web 服务器和应用程序服务器技术的组合交付。

答案 23 :(得分:1)

虽然两者之间可能存在重叠(某些Web服务器甚至可能用作应用程序服务器),但IMHO最大的区别在于处理模型和会话管理:

在Web服务器处理模型中,重点是处理请求; “会话”的概念几乎是虚拟的。也就是说,通过在客户端和服务器之间传输状态表示(因此REST)和/或将其序列化为外部持久存储(SQL Server,Memcached等)来模拟“会话”。

在应用程序服务器中,会话通常更加明确,并且通常在“会话”的整个持续时间内采用生活在应用程序服务器内存中的对象的形式。

答案 24 :(得分:0)

IMO,主要是关注分离问题。

从纯技术角度来看,您可以在单个Web服务器中执行所有操作(Web内容+业务逻辑)。如果您这样做,那么信息将嵌入在请求的HTML内容中。会有什么影响?

例如,假设您有2个不同的应用程序,这些应用程序在浏览器上呈现完全不同的HTML内容。如果您将业务逻辑分离到应用服务器,则可以提供不同的Web服务器,通过脚本在app-server中查找相同的数据。但是,如果您不将逻辑分开并将其保留在Web服务器中,那么每当您更改业务模型时,您最终都会在每个需要更多时间的Web服务器中更改它,而不是更少可靠且容易出错。

答案 25 :(得分:0)

基本理解:

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

  

服务器:>为请求提供服务的

     

客户端:>使用服务的用户。

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.
  

用法-

      we require low processing rates,

      regular processing practices involves.
     

例如:通常所有现成的平面服务器都是现成的,仅可用于网络    内容。

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.
  

用法-

      we require multi point processing,

      specialized processing techniques involves like for AI.
     

例如:Google地图服务器,Google搜索服务器,Google文档服务器,Microsoft 365   服务器,用于AI的Microsoft计算机视觉服务器。

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

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

请点击以下链接以获取标准体系结构的类比

https://docs.microsoft.com/en-us/previous-versions/msp-n-p/ee658120(v%3dpandp.10)

答案 26 :(得分:0)

这取决于具体的架构。某些应用程序服务器可能本身使用Web协议(XML / RPC / SOAP over HTTP),因此几乎没有技术差异。通常,Web服务器面向用户,通过HTTP / HTTPS提供各种内容,而应用程序服务器不面向用户,可以使用非标准或不可路由的协议。当然,对于RIA / AJAX,差异可能会进一步蒙上阴影,只为非特定远程访问服务的客户提供非HTML内容(JSON / XML)。

答案 27 :(得分:0)

从上述出色的SO传播者的帖子中得出我的结论,我得出结论,两者都是驻留在实际金属服务器(物理服务器)上的软件。两者携手合作,为最终用户提供服务。然后,根据设置,我们可以选择要调用的名称,这意味着如何描述它取决于实际使用的设置。如果它们都驻留在同一裸机(物理服务器)上,我们将其称为Web和应用程序服务器...很简单!如果在单独的计算机上,显然,我们手中有两个不同的裸机(物理服务器)。然后,我们可以根据这些服务器的功能对它们进行标记:一个Web服务器和另一个应用程序服务器。

Web Server vs App Server