web server与app server有什么不同

简单来说,web服务器提供页面给浏览器,而app服务器提供客户端可以调用的接口。具体而言,我们可以说:

Web服务器处理HTTP请求,而app服务器基于多种不同的协议,处理应用程序的逻辑问题。

以下将详细介绍它们之间的区别。

Web服务器

web
服务器处理HTTP协议。当收到一个HTTP请求之后,web服务器会返回一个HTTP响应,比如一个HTML页面。为了处理请求,它可能响应一个静态的
HTML页面、图片、重定向,或者代理(delegate)其他动态响应。这些动态响应可以由其他程序生成,包括CGI脚
本,JSPs,servlets,ASPs,服务器端的Javascript,或者其他服务器端技术。而这些服务器端程序响应,大多数时候都表现为
HTML页面,供浏览器访问。

理解一个web服务器的代理模型(delegate
model)相对比较简单。当web服务器接收到一个请求,它只是简单的将请求交给处理该请求的最优程序。除了为服务器程序简单的提供一个运行环境(服务
器程序可以在其中运行,并且返回生成的响应)之外,web服务器不提供任何功能。服务器程序一般自己处理交换(transaction)、数据库连接、消
息分发等。

虽然web服务器不提供以上的服务,但是它一般会提供诸如容错机制,负载均衡、缓存、集群等的可扩展性。而后者,一般来说不应该部署在web服务器上,而应该在app服务器上!

App服务器


据我们的定义,app服务器可以基于各种不同的协议(可能包含HTTP协议),为客户端程序提供应用逻辑的处理。不同于web服务器主要发送用来展示在浏
览器上的HTML页面,app服务器为客户端程序处理应用逻辑方面问题。应用程序使用这些逻辑,就如同调用一个对象的方法(或者面向过程编程中的函数)一
样简单。

这些应用程序可能包含PC机上运行的GUI进程,web服务器,甚至其他的app服务器。app服务器和客户端之间的通信并不局限于简单的显示标记,而是可以由程序逻辑,比如数据表单、方法调用,而非静态的HTML,这样,客户端程序就可以按需去用了!


大多数情况下,app服务器通过元件API,比如基于j2ee
app服务器的EJB,来提供应用逻辑。而更多的情况下,app服务器自己管理自己的资源。这些责任(gate-keeping)包括安全、进程交互、资
源池、消息分发等。同web服务器一样,app服务器也可能需要各种可扩展性和容错机制。

一个例子

以一个提供实时价格和
相关信息的在线商店为例,它极有可能提供了一个表单,用户可以选择不同的产品并查询。它会查找,并通过HTML网页展示结果。这个网站可能有多种方式来实
现这个功能,下面我们将举两个相反的例子,一个不使用app服务器,而另一个使用。通过这两个例子,可以帮助你理解app服务器的功能。

场景1:web服务器,而非app服务器

在这个场景里,web服务器独自提供在线商店的功能。它接受用户的请求,交给服务器端程序处理。该服务器端程序通过数据库,或者纯文本,查找到价格信息,然后生成HTML响应,通过web服务器返回给用户的浏览器。

总结来说,web服务器仅需要接受HTTP请求,并响应HTML网页。

场景2: web服务器 + app服务器

同场景1一样,web服务器仍然代理脚本生成的响应。但是你可以把业务逻辑部署在app服务器上。这样,脚本就不需要去关注怎样查询和生成响应,而仅需要调用app服务器提供查询服务,从而利用其生成它的HTML响应。

在这个例子中,app服务器提供了价格查询的业务逻辑。这个逻辑不应该包含怎样去展示,或者强迫客户端使用这些数据。相反的是,客户端和app服务器进行交互,只有当客户端调用了app服务器的价格查询服务的时候,该服务才查找到信息并返回。

同HTML代码生成分离开后,价格查询逻辑的复用性提高了。另外一个客户端,比如收银机,同样可以调用这个接口。而场景1里,价格查询服务就很难被重用,因为它和HTML页面紧密联系。

总结来说,第二个场景中,web服务器处理HTTP请求,并返回HTML页面,而app服务器处理业务逻辑。

注意事项

近来,XML web服务器模糊了app服务器和web服务器的界限。发送一个XML请求给web服务器,web服务器可以像过去的app服务器一样,处理数据并返回响应。


外,很多app服务器包含web服务器,这就意味着你可以把web服务器看做app服务器的一个子集。虽然app服务器包含web服务器的功能,但是开发
者还是很少以此身份发布app服务器。如果需要的话,他们通常将web服务器和app服务器分离开。这样的目的是,性能(简单的web请求不会影响到
app服务器的性能)、发布配置(专用的web服务器,集群等)、更好的厂商选择。

时间: 2024-10-15 10:40:41

web server与app server有什么不同的相关文章

Skype For Business 2015实战系列13:安装Office Web App Server

Skype For Business 2015实战系列13:安装Office Web App Server 今天要为大家介绍的是Office Web App Server(以下简称OWA),OWA在Skype For Business中的主要作用就是在用户使用Skype客户端开会的时候可以共享PPT,从而可以更好的进行演讲! 安装OWA: 我们登陆到OWA,服务器,坚持服务器的基本信息如下: 安装OWA所需的Windows组建: 以管理员身份打开Powershell,运行如下命令: Add-Wi

The different between app server and web server

web server: handles http request app server: handle the business logic of the application 1) web server A Web server mainly deals with sending HTML for display in a Web browser.When a request comes into the Web server, the Web server simply passes th

SharePoint 2016集成部署Office Web App Server (三)

Office Web App Server既然已经安装完成了,下面我们就来配置一下 首先我们要部署Office Web App Server场,这个场的概念和种类大致分为三种,且部署步骤略有不同, 微软官方的解释和场景描述如下: 1. 使用 HTTP 的.包含一台服务器的 Office Web Apps Server 场 如果您仅将 Office Web Apps Server 部署用于测试或内部使用,并且您不需要向 Lync Server 2013 提供 Office Web Apps Ser

SharePoint 2016集成部署Office Web App Server (一)

在如今的SharePoint 2016版本中,我们已经可以通过其自有的独特功能来进行全面而便捷的日常工作的处理,但是我们能不能借助其自有的这些原生功能来和我们的Office程序进行集成呢?答案是肯定的. 今天我们就来一起部署一套微软的Office Web App Server,它提供 Word.PowerPoint.Excel 和 OneNote 的基于浏览器的版本,说通俗一点,我们可以通过浏览器来直接对SharePoint里面的office文档进行网页版的建议编辑.这样就大大的增强了我们办公效

App server 与 Web server之间的区别

原文: http://www.javaworld.com/javaqa/2002-08/01-qa-0823-appvswebserver.html 简单来说,web服务器提供页面给浏览器,而app服务器提供客户端可以调用的接口.具体而言,我们可以说: Web服务器处理HTTP请求,而app服务器基于多种不同的协议,处理应用程序的逻辑问题. 以下将详细介绍它们之间的区别. Web服务器 web服务器处理HTTP协议.当收到一个HTTP请求之后,web服务器会返回一个HTTP响应,比如一个HTML

Python接口测试实战5(下) - RESTful、Web Service及Mock Server

如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战2 - 使用Python发送请求 Python接口测试实战3(上)- Python操作数据库 Python接口测试实战3(下)- unittest测试框架 Python接口测试实战4(上) - 接口测试框架实战 Python接口测试实战4(下) - 框架完善:用例基类,用例标签,重新运行上次失败用例

web.config和app.config使用

web.config和app.config使用 一.配置文件说明 1.web.config文件是一个XML文件,它的根结点是<configuration>,2.在<configuration>节点下的常见子节点有:<configSections>.<appSettings>.<connectionStrings> 和<system.web>.  其中: 1)<appSettings>节点:主要用于配置一些网站的应用配置信息

Response.Redirect()、Server.Execute和Server.Transfer的区别

1.Response.Redirect(): Response.Redirect方法导致浏览器链接到一个指定的URL. 当Response.Redirect()方法被调用时,它会创建一个应答,应答头中指出了状态代  码302(表示目标已经改变)以及新的目标URL.浏览器从服务器收到该应答,利用应答头中的信息发出一个对新URL的请求. 这就是说, 使用Response.Redirect方法时重定向操作发生在客户端,总共涉及到两次与服务器的通信(两个来回):第一次是对原始页面 的请求,得到一个302

vCenter Server 和 vCenter Server Appliance安装中包含的组件

以下组件包含在 vCenter Server 和 vCenter Server Appliance 安装中: (1)VMware Platform Services Controller 基础架构服务组包含 vCenter Single Sign-On.许可证服务.Lookup Service 和 VMware 证书颁发机构.(2)vCenter Server 服务组包含 vCenter Server.vSphere Web Client.Inventory Service.vSphere Au