应用服务器和web服务器之间的区别是什么?
当前回答
在Java术语中,还有一个:web容器(或者更严格地说,servlet容器)。例如,它位于web服务器和应用程序服务器之间。
Java术语中的web容器是一个应用服务器,它基本上只实现JavaEE的JSP/Servlet部分,并且缺少JavaEE的几个核心部分,例如EJB支持。Apache Tomcat就是一个例子。
其他回答
实际上,Apache是一个web服务器,Tomcat是一个应用程序服务器。当HTTP请求到达web服务器时。然后,web服务器将静态内容发送回浏览器。是否有逻辑要做,然后将该请求发送到应用程序服务器。处理完逻辑后,将响应发送到web服务器并发送到客户端。
Web服务器专门处理HTTP/HTTPS请求。它使用HTTP/HTTPS协议向web提供内容。
应用服务器通过任意数量的协议(可能包括HTTP)为应用程序提供业务逻辑。应用程序可以像调用对象上的方法一样使用此逻辑。在大多数情况下,服务器通过一个组件API公开这个业务逻辑,例如在Java EE(Java平台,企业版)应用服务器上找到的EJB(Enterprise JavaBean)组件模型。重点是web服务器通过http协议公开所有内容,而应用程序服务器不限于此。因此,应用服务器提供比web服务器多得多的服务,web服务器通常包括:
A(专有或非专有)API负载平衡、故障转移。。。对象生命周期管理状态管理(会话)资源管理(例如,到数据库的连接池)
大多数应用程序服务器都将Web服务器作为其组成部分,这意味着App Server可以执行Web服务器所能执行的任何操作。此外,AppServer还具有支持应用程序级服务的组件和功能,如连接池、对象池、事务支持、消息服务等。
应用服务器可以(但不总是)在web服务器上运行以执行程序逻辑,然后可以由web服务器交付程序逻辑的结果。这是web服务器/应用程序服务器场景的一个示例。Microsoft世界中的一个很好的例子是Internet Information Server/SharePoint Server关系。IIS是一个web服务器;SharePoint是一个应用程序服务器。SharePoint位于IIS之上,执行特定的逻辑,并通过IIS提供结果。例如,在Java世界中,Apache和Tomcat也有类似的场景。
由于web服务器非常适合静态内容,而应用服务器非常适合动态内容,因此大多数生产环境都将web服务器作为应用服务器的反向代理。这意味着在服务页面请求时,静态内容(如图像/静态html)由解释请求的web服务器提供。使用某种过滤技术(主要是请求资源的扩展),web服务器识别动态内容请求并透明地转发到应用服务器。
此类配置的示例是Apache HTTP Server和BEA WebLogic Server。Apache HTTP服务器是Web服务器,BEA WebLogic是应用程序服务器。在某些情况下,服务器是紧密集成的,如IIS和.NET运行时。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+
首先,web服务器通过HTTP协议提供web内容(HTML和静态内容)。另一方面,应用程序服务器是一个容器,您可以在该容器上构建业务逻辑和流程,并通过各种协议(包括n层架构中的HTTP)将其公开给客户端应用程序。
因此,应用服务器提供比web服务器多得多的服务,web服务器通常包括:
A(专有或非专有)API对象生命周期管理,状态管理(会话),资源管理(例如,到数据库的连接池),负载平衡、故障转移。。。
AFAIK,ATG Dynamo是90年代后期最早的应用服务器之一(根据上面的定义)。在2000年初,它是一些专有应用服务器的统治,如ColdFusion(CFML AS)、BroadVision(服务器端JavaScript AS)等。
这取决于具体的体系结构。一些应用程序服务器可能在本地使用web协议(XML/RCP/SOAP over HTTP),因此技术上几乎没有差别。通常,web服务器面向用户,通过HTTP/HTTPS提供各种内容,而应用服务器不面向用户,可能使用非标准或不可路由的协议。当然,使用RIA/AAJAX,差异可能会更加模糊,只向客户提供非HTML内容(JSON/XML),从而提供特定的远程访问服务。
应用服务器和web服务器都用于托管web应用程序。另一方面,Web服务器处理Web容器,Application Server处理Web容器以及EJB(Enterprise JavaBean)容器或Microsoft dot Net的COM+容器。
Web服务器被设计为提供HTTP静态内容(如HTML、图像等),对于动态内容,具有支持Perl、PHP、ASP、JSP等脚本语言的插件,并且仅限于HTTP协议。以下服务器可以生成动态HTTP内容。
Web服务器的编程环境:
IIS:ASP(.NET)
Apache Tomcat:Servlet
码头:Servlet
阿帕奇:Php,CGI
应用程序服务器可以执行Web服务器所能执行的任何操作,并使用任何协议进行侦听。应用程序服务器具有支持应用程序级服务的组件和功能,如连接池、对象池、事务支持、消息服务等。
应用程序服务器的编程环境:
MTS:COM公司+
是:EJB
JBoss:EJB
WebLogic应用服务器:EJB