应用服务器和web服务器之间的区别是什么?
当前回答
国际海事组织,这主要是关于分离担忧。
从纯技术角度来看,您可以在单个web服务器中完成所有操作(web内容+业务逻辑)。如果您这样做,那么信息将嵌入请求的HTML内容中。会有什么影响?
例如,假设您有两个不同的应用程序,它们在浏览器上呈现完全不同的HTML内容。如果您将业务逻辑分离为应用服务器,那么您可以提供不同的web服务器,通过脚本在应用服务器中查找相同的数据。然而,如果您不将逻辑分离并将其保存在web服务器中,那么每当您更改业务模型时,您最终都会在您拥有的每一个web服务器中更改它,这将花费更多时间、可靠性降低且容易出错。
其他回答
实际上,Apache是一个web服务器,Tomcat是一个应用程序服务器。当HTTP请求到达web服务器时。然后,web服务器将静态内容发送回浏览器。是否有逻辑要做,然后将该请求发送到应用程序服务器。处理完逻辑后,将响应发送到web服务器并发送到客户端。
这两个术语都非常通用,一个包含另一个,在某些情况下反之亦然。
Web服务器:使用http协议向Web提供内容。应用程序服务器:托管并公开业务逻辑和流程。
我认为主要的一点是web服务器通过http协议公开所有内容,而应用程序服务器不限于此。
也就是说,在许多情况下,您会发现web服务器被用于创建应用程序服务器的前端,即它公开了一组网页,允许用户与应用程序服务器中的业务规则进行交互。
web服务器运行HTTP协议来服务网页。应用服务器可以(但不总是)在web服务器上运行以执行程序逻辑,然后可以由web服务器交付程序逻辑的结果。这是web服务器/应用程序服务器场景的一个示例。
Microsoft世界中的一个很好的例子是Internet Information Server/SharePoint Server关系。IIS是一个web服务器;SharePoint是一个应用程序服务器。SharePoint位于IIS之上,执行特定的逻辑,并通过IIS提供结果。
例如,在Java世界中,Apache和Tomcat也有类似的场景。
这取决于具体的体系结构。一些应用程序服务器可能在本地使用web协议(XML/RCP/SOAP over HTTP),因此技术上几乎没有差别。通常,web服务器面向用户,通过HTTP/HTTPS提供各种内容,而应用服务器不面向用户,可能使用非标准或不可路由的协议。当然,使用RIA/AAJAX,差异可能会更加模糊,只向客户提供非HTML内容(JSON/XML),从而提供特定的远程访问服务。
首先,web服务器通过HTTP协议提供web内容(HTML和静态内容)。另一方面,应用程序服务器是一个容器,您可以在该容器上构建业务逻辑和流程,并通过各种协议(包括n层架构中的HTTP)将其公开给客户端应用程序。
因此,应用服务器提供比web服务器多得多的服务,web服务器通常包括:
A(专有或非专有)API对象生命周期管理,状态管理(会话),资源管理(例如,到数据库的连接池),负载平衡、故障转移。。。
AFAIK,ATG Dynamo是90年代后期最早的应用服务器之一(根据上面的定义)。在2000年初,它是一些专有应用服务器的统治,如ColdFusion(CFML AS)、BroadVision(服务器端JavaScript AS)等。