首页 > 系统 > 关键词  > Web服务器最新资讯  > 正文

入门:web服务器和应用服务器的区别

2009-05-21 16:20 · 稿源:中国IT实验室收集整理

web服务器可以解析(handles)http协议。当web服务器接收到一个http请求(request),会返回一个http响应 (response),例如送回一个html页面。为了处理一个请求(request),web服务器可以响应(response)一个静态页面或图片,进行页面跳转(redirect),或者把动态响应(dynamic response)的产生委托(delegate)给一些其它的程序例如cgi脚本,jsp(javaserver pages)脚本,servlets,asp(active server pages)脚本,服务器端(server-side)javascript,或者一些其它的服务器端(server-side)技术。无论它们(译者注:脚本)的目的如何,这些服务器端(server-side)的程序通常产生一个html的响应(response)来让浏览器可以浏览。

要知道,web服务器的代理模型(delegation model)非常简单。当一个请求(request)被送到web服务器里来时,它只单纯的把请求(request)传递给可以很好的处理请求 (request)的程序(译者注:服务器端脚本)。web服务器仅仅提供一个可以执行服务器端(server-side)程序和返回(程序所产生的)响应(response)的环境,而不会超出职能范围。服务器端(server-side)程序通常具有事务处理(transaction processing),数据库连接(database connectivity)和消息(messaging)等功能。

虽然web服务器不支持事务处理或数据库连接池,但它可以配置(employ)各种策略(strategies)来实现容错性(fault tolerance)和可扩展性(scalability),例如负载平衡(load balancing),缓冲(caching)。集群特征(clustering—features)经常被误认为仅仅是应用程序服务器专有的特征。

应用程序服务器(the application server)

根据我们的定义,作为应用程序服务器,它通过各种协议,可以包括http,把商业逻辑暴露给(expose)客户端应用程序。web服务器主要是处理向浏览器发送html以供浏览,而应用程序服务器提供访问商业逻辑的途径以供客户端应用程序使用。应用程序使用此商业逻辑就象你调用对象的一个方法 (或过程语言中的一个函数)一样。

应用程序服务器的客户端(包含有图形用户界面(gui)的)可能会运行在一台pc、一个web服务器或者甚至是其它的应用程序服务器上。在应用程序服务器与其客户端之间来回穿梭(traveling)的信息不仅仅局限于简单的显示标记。相反,这种信息就是程序逻辑(program logic)。正是由于这种逻辑取得了(takes)数据和方法调用(calls)的形式而不是静态html,所以客户端才可以随心所欲的使用这种被暴露的商业逻辑。

在大多数情形下,应用程序服务器是通过组件(component)的应用程序接口(api)把商业逻辑暴露(expose)(给客户端应用程序)的,例如基于j2ee(java 2 platform, enterprise edition)应用程序服务器的ejb(enterprise javabean)组件模型。此外,应用程序服务器可以管理自己的资源,例如看大门的工作(gate-keeping duties)包括安全(security),事务处理(transaction processing),资源池(resource pooling),和消息(messaging)。就象web服务器一样,应用程序服务器配置了多种可扩展(scalability)和容错(fault tolerance)技术。

一个例子

例如,设想一个在线商店(网站)提供实时定价(real-time pricing)和有效性(availability)信息。这个站点(site)很可能会提供一个表单(form)让你来选择产品。当你提交查询 (query)后,网站会进行查找(lookup)并把结果内嵌在html页面中返回。网站可以有很多种方式来实现这种功能。我要介绍一个不使用应用程序服务器的情景和一个使用应用程序服务器的情景。观察一下这两中情景的不同会有助于你了解应用程序服务器的功能。

情景1:不带应用程序服务器的web服务器

在此种情景下,一个web服务器独立提供在线商店的功能。web服务器获得你的请求(request),然后发送给服务器端(server- side)可以处理请求(request)的程序。此程序从数据库或文本文件(flat file,译者注:flat file是指没有特殊格式的非二进制的文件,如properties和xml文件等)中查找定价信息。一旦找到,服务器端(server-side)程序把结果信息表示成(formulate)html形式,最后web服务器把会它发送到你的web浏览器。

简而言之,web服务器只是简单的通过响应(response)html页面来处理http请求(request)。

情景2:带应用程序服务器的web服务器

情景2和情景1相同的是web服务器还是把响应(response)的产生委托(delegates)给脚本(译者注:服务器端(server -side)程序)。然而,你可以把查找定价的商业逻辑(business logic)放到应用程序服务器上。由于这种变化,此脚本只是简单的调用应用程序服务器的查找服务(lookup service),而不是已经知道如何查找数据然后表示为(formulate)一个响应(response)。这时当该脚本程序产生html响应(response)时就可以使用该服务的返回结果了。

在此情景中,应用程序服务器提供(serves)了用于查询产品的定价信息的商业逻辑。(服务器的)这种功能(functionality)没有指出有关显示和客户端如何使用此信息的细节,相反客户端和应用程序服务器只是来回传送数据。当有客户端调用应用程序服务器的查找服务(lookup service)时,此服务只是简单的查找并返回结果给客户端。

通过从响应产生(response-generating)html的代码中分离出来,在应用程序之中该定价(查找)逻辑的可重用性更强了。其他的客户端,例如收款机,也可以调用同样的服务(service)来作为一个店员给客户结帐。相反,在情景1中的定价查找服务是不可重用的因为信息内嵌在 html页中了。

总而言之,在情景2的模型中,在web服务器通过回应html页面来处理http请求(request),而应用程序服务器则是通过处理定价和有效性(availability)请求(request)来提供应用程序逻辑的。

警告(caveats)

现在,xml web services已经使应用程序服务器和web服务器的界线混淆了。通过传送一个xml有效载荷(payload)给服务器,web服务器现在可以处理数据和响应(response)的能力与以前的应用程序服务器同样多了。

另外,现在大多数应用程序服务器也包含了web服务器,这就意味着可以把web服务器当作是应用程序服务器的一个子集(subset)。虽然应用程序服务器包含了web服务器的功能,但是开发者很少把应用程序服务器部署(deploy)成这种功能(capacity)(译者注:这种功能是指既有应用程序服务器的功能又有web服务器的功能)。相反,如果需要,他们通常会把web服务器独立配置,和应用程序服务器一前一后。这种功能的分离有助于提高性能(简单的web请求(request)就不会影响应用程序服务器了),分开配置(专门的web服务器,集群(clustering)等等),而且给最佳产品的选取留有余地。

  • 相关推荐
  • 大家在看
  • 特斯拉全球应用服务器“罢工” 车主手机无法连上汽车

    凤凰网科技讯 北京时间11月20日消息,特斯拉当前遭遇全球性应用服务器宕机,导致车主无法与自己的爱车“相连”。截至发稿,部分功能已经恢复。应用是特斯拉车主体验的重要组成部分。手机可以用作打开车门、启动发动机的钥匙,用户可以通过手机应用操作许多汽车控制功能。目前,美国和加拿大的特斯拉车主还完全无法访问特斯拉手机应用。本周早些时候,特斯拉发布了手机应用的更新包,除向车主提供新功能外,更新包还增添了多项帮助?

  • 特斯拉全球应用服务器“罢工” 手机无法连上汽车 马斯克回

    凤凰网科技讯 北京时间11月20日消息,特斯拉当前遭遇全球性应用服务器宕机,导致车主无法与自己的爱车“相连”。截至发稿,部分功能已经恢复。对于应用服务器故障问题,特斯拉CEO埃隆马斯克(Elon Musk)在Twitter上回复网友称:“正在检查中。”马斯克Twitter回应应用是特斯拉车主体验的重要组成部分。手机可以用作打开车门、启动发动机的钥匙,用户可以通过手机应用操作许多汽车控制功能。目前,美国和加拿大的特斯拉车主还完全无

  • Fortnite关闭其在中国的服务器

    Fortnite的手机游戏自2018年开始在中国上市,由于严格的政府监管,该游戏从未真正退出该地区的测试阶段。现在开发者正式宣布他们将关闭中国的Fortnite服务器。虽然开发商的官方声明没有指出具体的原因,但可以肯定的是,这是因为中国政府继续收紧对游戏行业的限制。最近对儿童玩游戏的限制只是一个例子。18岁以下的人每周不能玩超过3小时。获得在中国销售虚拟物品的许可越来越难,Fortnite的freemium商业模式在中国市场上也没有意?

  • 2021腾讯云服务器双十一冲刺秒杀活动开启 首购服务器低至0.4折

    2021年11月11日马上就要到了,全年优惠力度最大的一个节日中,腾讯云服务器也是不甘示弱,发布了很多优惠活动,下面就来为大家分享一下。

  • 赵文卓代言《剑网1:归来》,代言人专属服务器今日开放

    剑侠归来,以和为贵。由西山居原班人马打造的剑侠情缘复刻手游《剑网1:归来》,自 10 月 15 日开启全平台不删档测试以来得到玩家群体的积极反馈。游戏开服首日,紧急加开 32 组服务器,一度仍难满足汹涌的人潮;更有玩家为重温经典,甘愿在 5 千人的队伍中默默排队守候。今日,游戏再度发布消息——邀请功夫巨星赵文卓作为“剑网 1 归来代言人”,同时,赵文卓专属服务器【以和为贵】将于今日在游戏中同步开放!广大侠士门一起回?

  • 华为正式捐赠欧拉操作系统:可广泛部署于服务器等各种形态设备

    华为正式捐赠欧拉操作系统。欧拉是数字基础设施的开源操作系统,可广泛部署于服务器、云计算、边缘计算、嵌入式等各种形态设备,应用场景覆盖 IT、CT 和 OT,实现统一操作系统支持多设备,应用一次开发覆盖全场景。昨日(11月9日),操作系统产业峰会2021在北京国家会议中心线上线下同步举办。会上,华为携手社区全体伙伴共同将欧拉开源操作系统(openEuler)正式捐赠给开放原子开源基金会。

  • GitLab服务器漏洞被滥用于发起超过1Tbps的DDoS攻击

    Google 云安全可靠性工程师 Damian Menscher 在今日披露的 CVE-2021-22205 漏洞利用报告中指出:有攻击者正在利用 GitLab 托管服务器上的安全漏洞来构建僵尸网络,并发起规模惊人的分布式拒绝服务攻击(DDoS)。其中一些攻击的峰值流量,甚至超过了 1 Tbps 。攻击盯上了 GitLab 的元数据删除功能The Record 报道称:该漏洞由 William Bowling 发现,并通过漏洞赏金计划提交给了 GitLab 官方。具体受影响的组件被称作 ExifTool,它?

  • 一家俄罗斯软件公司称他们有方案可以取代微软Exchange服务器

    由于地缘政治局势和政府授权,软件世界正变得越来越分散,为其他公司填补通常的软件巨头的角色提供了机会。RuPost就是这种情况,它声称是俄罗斯市场上微软ExchangeSever的1:1替代品。RuPost是由Astra公司集团开发的,其声称完全实现了微软Exchange服务器的功能。该解决方案提供邮件、日历、联系人和地址簿搜索,还提供迁移工具和模板,让公司轻松从Exchange转移到RuPost。"首先,我们专注于解决拥有大规模基础设施的组织所面临的问

  • 将为Meta服务器提供芯片 AMD股价一度涨超12.5%

    凤凰网科技讯 北京时间11月9日消息,当地时间星期一,AMD公布了多款面向不同数据中心负载的专用处理器,并宣布Meta(即之前的Facebook)将成为其服务器芯片客户,在这两个消息拉动下,常规交易中AMD股价上涨13.82美元,涨幅为10.14%,报收于150.16美元,盘中一度摸高153.48美元,涨幅达到12.57%。Rosenblatt证券公司分析师汉斯摩塞斯曼(Hans Mosesmann)发表投资报告称,AMD获得Facebook订单让人感到意外,因为后者传统上只选用英

  • “学生党”免费内网穿透,3步外网访问本地tomcat服务器

    学习网站开发的同学,一般都安装过IIS或者Apache Tomcat等Web服务器,如果是用自己电脑搭建的本地服务器,部署的Web应用只能在校园网或家庭网内访问。如果需要远程调试或者在外网使用,没有公网IP该怎么办呢?一款简单易用、安全稳定的内网穿透软件——花生壳,简单 3 步即可满足在任何时间、任何地点、任何线路,通过花生壳固定的域名访问到内网主机的服务和应用。尤其对学生党来说,花生壳免费开放 “青春版”服务,可以通过学生

这篇文章对你有价值吗?

  • 热门标签

热文

  • 3 天
  • 7天