应用服务器和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架构,留给传统应用程序服务器的空间越来越少。
其他回答
这取决于具体的体系结构。一些应用程序服务器可能在本地使用web协议(XML/RCP/SOAP over HTTP),因此技术上几乎没有差别。通常,web服务器面向用户,通过HTTP/HTTPS提供各种内容,而应用服务器不面向用户,可能使用非标准或不可路由的协议。当然,使用RIA/AAJAX,差异可能会更加模糊,只向客户提供非HTML内容(JSON/XML),从而提供特定的远程访问服务。
最大的区别是Web服务器处理HTTP请求,而应用程序服务器将在任意数量的协议上执行业务逻辑。
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服务器通过HTTP协议提供web内容(HTML和静态内容)。另一方面,应用程序服务器是一个容器,您可以在该容器上构建业务逻辑和流程,并通过各种协议(包括n层架构中的HTTP)将其公开给客户端应用程序。
因此,应用服务器提供比web服务器多得多的服务,web服务器通常包括:
A(专有或非专有)API对象生命周期管理,状态管理(会话),资源管理(例如,到数据库的连接池),负载平衡、故障转移。。。
AFAIK,ATG Dynamo是90年代后期最早的应用服务器之一(根据上面的定义)。在2000年初,它是一些专有应用服务器的统治,如ColdFusion(CFML AS)、BroadVision(服务器端JavaScript AS)等。
不一定有明确的分界线。如今,许多程序结合了服务http请求(web服务器)和处理业务逻辑(app服务器)的元素