应用服务器和web服务器之间的区别是什么?
当前回答
在Java术语中,还有一个:web容器(或者更严格地说,servlet容器)。例如,它位于web服务器和应用程序服务器之间。
Java术语中的web容器是一个应用服务器,它基本上只实现JavaEE的JSP/Servlet部分,并且缺少JavaEE的几个核心部分,例如EJB支持。Apache Tomcat就是一个例子。
其他回答
web服务器运行HTTP协议来服务网页。应用服务器可以(但不总是)在web服务器上运行以执行程序逻辑,然后可以由web服务器交付程序逻辑的结果。这是web服务器/应用程序服务器场景的一个示例。
Microsoft世界中的一个很好的例子是Internet Information Server/SharePoint Server关系。IIS是一个web服务器;SharePoint是一个应用程序服务器。SharePoint位于IIS之上,执行特定的逻辑,并通过IIS提供结果。
例如,在Java世界中,Apache和Tomcat也有类似的场景。
应用程序服务器的设计和部署通常是为了促进运行时间更长的进程,而这些进程也将更加耗费资源。
web服务器通常用于资源不密集的短突发。这主要是为了方便提供基于web的流量。
基本理解:
在客户端-服务器体系结构中
服务器:>服务请求的服务器。客户端:>使用服务。
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服务器处理HTTP请求,而应用程序服务器将在任意数量的协议上执行业务逻辑。
正如许多人之前所说的,web服务器处理HTTP请求,而应用程序服务器处理分布式组件的请求。因此,了解差异的最简单方法是比较两种产品提供的编程环境。
Web服务器->编程环境
IIS:ASP(.NET)
Tomcat:Servlet
码头:Servlet
阿帕奇:Php,CGI
应用程序服务器->编程环境
MTS:COM公司+
是:EJB
JBoss:EJB
WebLogic应用服务器:EJB
关键区别在于,应用程序服务器支持一些分布式组件技术,提供远程调用和分布式事务等功能,如Java世界中的EJB或Microsoft平台上的COM+。Http服务器通常支持一些更简单的编程环境,通常是脚本环境,例如Microsoft的ASP(.NET)或基于Servlet的,包括JSP和Java的许多其他编程环境,或者Apache的PHP和CGI。
其他功能,如负载平衡、集群、会话故障切换、连接池等,过去属于应用服务器领域,现在也可以直接或通过一些第三方产品在web服务器上使用。
最后,值得注意的是,像Spring Framework这样的“轻量级容器”进一步扭曲了这一图景,这些容器通常以更简单的方式补充了应用服务器的用途,而没有应用服务器基础设施。而且,由于应用程序中的分布式方面正从分布式组件转向服务范式和SOA架构,留给传统应用程序服务器的空间越来越少。