应用服务器和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服务器通常用于资源不密集的短突发。这主要是为了方便提供基于web的流量。
正如许多人之前所说的,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架构,留给传统应用程序服务器的空间越来越少。
这两者之间的边界越来越薄。
应用程序服务器向客户端公开业务逻辑。这意味着应用程序服务器由一组执行业务逻辑的方法组成(但不限于此,甚至可以是一台网络计算机,允许许多人在其上运行软件)。因此,它只会输出所需的结果,而不是HTML内容。(类似于方法调用)。因此,它不是严格基于HTTP的。
但web服务器将HTML内容传递给web浏览器(严格基于HTTP)。Web服务器只能处理静态Web资源,但服务器端脚本的出现也允许Web服务器处理动态内容。web服务器接收请求并将其引导到相关脚本(PHP、JSP、CGI脚本等),以创建要发送到客户端的HTML内容。一旦接收到内容,web服务器将向客户端发送HTML页面。
然而,现在这两个服务器都一起使用。web服务器接收请求,然后调用脚本来创建HTML内容。然后,脚本将再次调用应用程序服务器LOGIC(例如检索事务细节)来填充HTML内容。
因此这两个服务器都得到了有效的使用。
因此我们可以放心地说,现在,在大多数情况下,web服务器被用作应用服务器的子集。但戏剧性地,情况并非如此。
我读过很多关于这个主题的文章,发现这篇文章非常有用。
正如Rutesh和jmservera所指出的,区别是模糊的。从历史上看,它们是不同的,但在90年代,这两个以前不同的类别混合了特征并有效地合并了。在这一点上,最好的设想是“应用服务器”产品类别是“web服务器”类别的严格超集。
一些历史。在Mosaic浏览器和超链接内容的早期,出现了一种称为“web服务器”的东西,它通过HTTP提供网页内容和图像。大部分内容都是静态的,HTTP1.0协议只是一种传送文件的方式。很快,“web服务器”类别演变为包括CGI功能——有效地对每个web请求启动一个过程以生成动态内容。HTTP也成熟了,产品变得更加复杂,具有缓存、安全性和管理功能。随着技术的成熟,我们从Kiva和NetDynamics获得了特定于公司的基于Java的服务器端技术,这些技术最终都合并到了JSP中。我认为微软在1996年将ASP添加到了Windows NT 4.0中。静态web服务器已经学会了一些新技巧,因此对于许多场景来说,它是一个有效的“应用服务器”。
在一个平行的类别中,应用服务器已经进化并存在了很长时间。公司为Unix提供了Tuxedo、TopEnd、Encina等产品,这些产品从哲学上源自IMS和CICS等大型机应用程序管理和监控环境。微软的产品是微软事务服务器(MTS),后来演变成COM+。这些产品中的大多数指定了“封闭”的特定于产品的通信协议,以将“胖”客户端与服务器互连。(对于Encina,通信协议是DCE RPC;对于MTS,它是DCOM;等等)1995/96年,这些传统的应用服务器产品开始嵌入基本的HTTP通信功能,最初是通过网关。线条开始模糊。
Web服务器在处理更高的负载、更多的并发性和更好的功能方面变得越来越成熟。应用服务器提供了越来越多的基于HTTP的通信功能。
此时,“应用服务器”和“web服务器”之间的界限是模糊的。但作为一个重点,人们继续使用不同的术语。当有人说“web服务器”时,你通常会想到以HTTP为中心、面向web UI的应用程序。当有人说“应用服务器”时,你可能会想到“更重的负载、企业功能、事务和排队、多渠道通信(HTTP+更多)。但通常是同一个产品同时满足两组工作负载要求。”。
IBM的“应用服务器”WebSphere有自己的捆绑web服务器。另一个传统的应用服务器WebLogic也是如此。Windows是微软的应用服务器(除了作为其文件和打印服务器、媒体服务器等),捆绑了IIS。
首先,web服务器通过HTTP协议提供web内容(HTML和静态内容)。另一方面,应用程序服务器是一个容器,您可以在该容器上构建业务逻辑和流程,并通过各种协议(包括n层架构中的HTTP)将其公开给客户端应用程序。
因此,应用服务器提供比web服务器多得多的服务,web服务器通常包括:
A(专有或非专有)API对象生命周期管理,状态管理(会话),资源管理(例如,到数据库的连接池),负载平衡、故障转移。。。
AFAIK,ATG Dynamo是90年代后期最早的应用服务器之一(根据上面的定义)。在2000年初,它是一些专有应用服务器的统治,如ColdFusion(CFML AS)、BroadVision(服务器端JavaScript AS)等。