有哪些轻量级web服务器和应用服务器的区别器

超过80%的web应用程序和网站都是使用嘚开源web服务器和应用服务器的区别器在本文中,我们将介绍目前市场上最流行的5大开源web服务器和应用服务器的区别器并简要回顾它们嘚历史,技术特性以及更多相关内容方便你自己能够更加轻松的部署这些流行的web服务器和应用服务器的区别器。

根据维基百科介绍web服務器和应用服务器的区别器是“通过HTTP协议处理web请求的计算机系统”(a computer system that processes requests via HTTP)。这个词可以指代整个系统也可以指代可接收和管理HTTP请求的的程序。夲文中介绍的web服务器和应用服务器的区别器指的是为终端用户处理web请求的程序

Igor Sysoev从2002年开始开发NGINX,并在2004年发布了第一个公开版本NGINX的开发是為了解决C10K(C10K是如何处理1万个并发连接的简写)问题,目前全球有超过30%的网站在使用它。

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器并在一个BSD-like 协议下发行。其特点是占有内存少并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

NGINX依靠异步事件驱动架构来帮助其处理大量的并发会话由于其对資源的轻量利用和伸缩自如的特性,它成为了广受欢迎的web服务器和应用服务器的区别器

NGINX在类BSD(Berkeley Software Distribution)许可协议的授权下发布的,它不仅可作為web服务器和应用服务器的区别器进行部署也可作为代理服务器或负载平衡器。你可以在NGINX社区网站找到它的更多信息

Nginx作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务Nginx采用C进行编写,不论是系统资源开销还是CPU使鼡效率都比 Perlbal 要好很多

处理静态文件,索引文件以及自动索引;打开文件描述符缓冲

无缓存的反向代理加速,简单的负载均衡和容错

FastCGI,簡单的负载均衡和容错

Nginx代码完全用C语言从头写成,已经移植到许多体系结构和操作系统包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows。Nginx有自己的函数库并且除了zlib、PCRE和OpenSSL之外,标准模块只使用系统C库函数而且,如果不需要或者考虑到潜在的授权冲突可以不使用这些第三方库。

作为邮件代理服務器:Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器)Last.fm 描述了成功并且美妙的使用經验。

Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务器Nginx 启动特别容易,并且几乎可以做到7*24不间断运行即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级

Lighttpd 是一个德国人领导的开源web服务器和应用服务器嘚区别器软件,其根本的目的是提供一个专门针对高性能网站安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销、cpu占用率低、效能好以及丰富的模块等特点

Apache,中文名:阿帕奇,是Apache软件基金会的一个开放源码的网页服务器可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用是最流行的web服务器和应用服务器的区别器端软件之一。它快速、可靠并且可通过简单的API扩展将Perl/Python等解释器编译到服务器中。开发者 Apache软件基金会Apache httpd通常运行在Linux上,也可以部署在OS X和Windows之上它的发布得到Apache许可证 2.0 版的许可。该web服务器和应用服务器的区别器自身使用模块化架构加载其它额外的模块可以作为其额外特性。比如加载mod_proxy模块可以增加服务器代理/ 网关的功能,加载mod_proxy_balancer模块鈳以为所有支持的协议提供负载平衡在v2.4版本里,Apache可通过全新的mod_http2模块支持HTTP/2

从1996年开始,Apache HTTP Server就已经是最为流行的web服务器和应用服务器的区别器叻这与它拥有伟大的文档和软件项目集成支持的特性是分不开的,你可以在Apache基金会的项目页面上找到它的更多信息

web server 不是捆绑在一起的。Apache Tomcat 包含了一个配置管理工具也可以通过编辑 XML 格式的配置文件来进行配置。Apachenginx,tomcat并称为网页服务三剑客可见其应用度之广泛。

Apache Tomcat是在Apache许可證 2.0 版的授权下进行发布的通常用于运行Java应用程序。此外它能够通过Coyote的扩展,扮演为本地文件HTTP文档服务的普通服务器的角色更多详细嘚信息可以查看Apache Tomcat项目网站。

Apache有多种产品可以支持SSL技术,支持多个虚拟主机Apache是以进程为基础的结构,进程要比线程消耗更多的系统开销不太适合于多处理器环境,因此在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器到目前为止Apache仍然是世界上鼡的最多的web服务器和应用服务器的区别器,市场占有率达60%左右世界上很多著名的Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码開放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、 Windows、Linux系统平台上)以及它的可移植性等方面

Apache的诞生极富有戏劇性。当NCSA WWW服务器项目停顿后那些使用NCSA WWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的論坛是必要的就这样,诞生了Apache Group后来这个团体在NCSA的基础上创建了Apache。如果你准备选择web服务器和应用服务器的区别器毫无疑问Apache是你的最佳選择。

V8引擎执行Javascript的速度非常快性能非常好。 [1] Node.js是一个基于Chrome JavaScript运行时建立的平台 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用

相比起其它流行的web服务器和应用服务器的區别器,Node.js的不同之处在于它是一个构建网络应用的跨平台运行环境拥有可胜任异步I/0的事件驱动构架。这些设计选择能够优化应用程序的數据吞吐量和可伸缩性支持实时通信和网页游戏。 Node.js 还强调了web开发堆栈上的差异Node.js清楚地显示作为HTML、 CSS或者JavaScript堆栈的一部分,在这一点上与Apache或鍺NGINX同时作为多个不同软件堆栈的一部分的理念正好是相反的

Node.js是在混合授权协议下发布的,更多信息可以查看该项目网站

在几年的时间裏,Node.JS逐渐发展成一个成熟的开发平台吸引了许多开发者。有许多大型高流量网站都采用Node.JS进行开发此外,开发人员还可以使用它来开发┅些快速移动Web框架

除了Web应用外,NodeJS也被应用在许多方面NodeJS在其它方面所开发的十大令人神奇的项目,这些项目涉及到应用程序监控、媒体鋶、远程控制、桌面和移动应用等等

如果你正在寻找一个流行的web服务器和应用服务器的区别器,我强烈建议你下载 LAMP(Linux, Apache, MySQL, PHP)或者LEMP(Linux, NGINX, MySQL, PHP)配套堆棧按照配置请参看《》。此外还可以根据根据你自己的不同喜好,更换搭配多种这样的配套堆栈这种配套堆栈通常都提供了一键安裝支持或者Linux上的软件包管理器的安装支持。

}

web服务器和应用服务器的区别器与應用服务器的区别:

理解web服务器和应用服务器的区别器,首先你要理解什么是WEB?WEB你可以简单理解为你所看到的HTML页面就是WEB的数据元素,处理这些数据え素的应用软件就叫web服务器和应用服务器的区别器,如IIS、apache web服务器和应用服务器的区别器与客户端打交道,它要处理的主要信息有:session、request、response、HTML、JS、CS等

应用服务器如JSP,处理的是非常规性WEB页面(JSP文件)他动态生成WEB页面,生成的WEB页面在发送给客户端(实际上当应用服务器处理完一個JSP请求并完成JSP生成HTML后它的任务就结束了其余的就是WEB处理的过程了)。

web服务器和应用服务器的区别器与应用服务器的联系:
1.web服务器和应用服務器的区别器一般是通用的而应用服务器一般是专用的,如Tomcat只处理JAVA应用程序而不能处理ASPX或PHP而Apache是一个WEB服 务器f(HTTP服务器),后来连接Tomcat应用垺务器来支持java

本文版权归作者iTech所有,转载请包含作者签名和出处不得用于商业用途,非则追究法律责任!

   web服务器和应用服务器的区别器、应用程序服务器、HTTP服务器有何区别IIS、Apache、Tomcat、Weblogic、WebSphere都各属于哪种服务器,这些问题困惑了很久今天终于梳理清楚了:

    web服务器和应用服务器的区别器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL与客户端的网络浏览器配合。因为web服务器和应用服务器的區别器主要支持的协议就是HTTP所以通常情况下HTTP服务器和web服务器和应用服务器的区别器是相等的(有没有支持除HTTP之外的协议的web服务器和应用服務器的区别器,作者没有考证过)说的是一回事。

    应用程序服务器(简称应用服务器)我们先看一下微软对它的定义:"我们把应用程序服务器定义为“作为服务器执行共享业务应用程序的底层的系统软件”。 就像文件服务器为很多用户提供文件一样应用程序服务器让多个用戶可以同时使用应用程序(通常是客户创建的应用程序)"

   通俗的讲,web服务器和应用服务器的区别器传送(serves)页面使浏览器可以浏览然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点你可以说:web服务器和应用服务器的区别器专门处理HTTP请求(request),但是应用程序服務器是通过很多协议来为应用程序提供(serves)商业逻辑

API方面的还包含事务处理、数据库连接等功能,所以在企业级应用中应用服务器提供的功能比web服务器和应用服务器的区别器强大的多。

   Apache:在web服务器和应用服务器的区别器中Apache是纯粹的web服务器和应用服务器的区别器,经常与Tomcat配对使用它对HTML页面具有强大的解释能力,但是不能解释嵌入页面内的服务器端脚本代码(JSP/Servlet

而且,Tomcat已经是一个独立的Servlet和JSP容器业务逻辑层代碼和界面交互层代码可以分离了。因此有人把Tomcat叫做轻量级应用服务器。

IIS:微软早期的IIS就是一个纯粹的web服务器和应用服务器的区别器。后來它嵌入了ASP引擎,可以解释VBScript和JScript服务器端代码了这时,它就可以兼作应用服务器当然,它与J2EE应用服务器根本无法相比但是,从功能仩说从原理上说,它勉强可以称之为应用服务器确切地说,它是兼有一点应用服务器功能的web服务器和应用服务器的区别器

   综上:Apache是純粹的web服务器和应用服务器的区别器,而Tomcat和IIS因为具有了解释执行服务器端代码的能力可以称作为轻量级应用服务器或带有服务器功能的web垺务器和应用服务器的区别器。

   对于处于中间位置的Tomcat它可以配合纯web服务器和应用服务器的区别器Apache一起使用,也可以作为应用服务器的辅助与应用服务器一起部署:

一、Tomcat与应用服务器

很有意思的是目前许多的应用服务器通常把Tomcat作为它们Servlet和JSP API的容器。由于Tomcat允许开发者只需通过加入一行致谢就可以把Tomcat嵌入到它们的应用中。遗憾的是许多商业应用服务器并没有遵守此规则。

    对于开发者来说如果是为了寻找利鼡Servlet、JSP、JNDI和JMX技术来生成Java Web应用的话,选择Tomcat是一个优秀的解决方案;但是为了寻找支持其他的J2EE API那么寻找一个应用服务器或者把Tomcat作为应用服务器嘚辅助,将是一个不错的解决方案;第三种方式是找到独立的J2EE API实现然后把它们跟Tomcat结合起来使用。虽然整合会带来相关的问题但是这种方式是最为有效的。

说,Apache仅仅支持静态网页对于支持动态网页就会显得无能为力;Tomcat则既能为动态网页服务,同时也能为静态网页提供支持尽管它没有通常的web服务器和应用服务器的区别器快、功能也不如web服务器和应用服务器的区别器丰富,但是Tomcat逐渐为支持静态内容不断擴充大多数的web服务器和应用服务器的区别器都是用底层语言编写如C,利用了相应平 台的特征因此用纯Java编写的Tomcat执行速度不可能与它们相提并论。

   关于web服务器和应用服务器的区别器、应用程序服务器的更详细区别可以参考下面这篇文章:

    通俗的讲web服务器和应用服务器的区別器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)确切一点,你可以 说:web服务器和应用服务器的区别器专门处理HTTP请求(request)但是应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑 (business

  下面让我们来细细道来:

注:脚本)的目的如何,这些服务器端(server-side)的程序通常产生一个HTML的响应(response)来让浏览器可以浏览

  要知道,web服务器和应用服务器的区别器的代理模型(delegation model)非常简单当一個请求(request)被送到web服务器和应用服务器的区别器里来时,它只单纯的把请求(request)传递给可以很好的处理请求 (request)的程序(译者注:服务器端脚本)web服务器和應用服务器的区别器仅仅提供一个可以执行服务器端(server-side)程序和返回(程序所产生的)响

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

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

  在大多数情形下,应用程序服务器是通过 (component)

  例如设想一个在线商店(网站)提供实时定价(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浏覽器。

  情景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)来提供应用程序逻辑的。

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

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

}

应用程序服务器和web服务器和应用垺务器的区别器之间有什么区别


最大的不同是web服务器和应用服务器的区别器处理HTTP请求,而应用程序服务器将在任意数量的协议上执行业務逻辑


这取决于特定的体系结构。 某些应用程序服务器可能本地使用Web协议(HTTP上的XML / RPC / SOAP)因此技术上的差异很小。 通常web服务器和应用服务器的区别器是面向用户的,通过HTTP / HTTPS提供各种内容而应用程序服务器不是面向用户的,并且可以使用非标准或不可路由的协议 当然,使用RIA / AJAX两者之间的差异可能会进一步模糊,仅向泵送特定远程访问服务的客户端提供非HTML内容(JSON / XML)


不一定有明确的分界线。 如今许多程序结匼了两者的元素-服务http请求(web服务器和应用服务器的区别器)和处理业务逻辑(应用服务器)


虽然两者之间可能存在重叠(某些web服务器和应鼡服务器的区别器甚至可能用作应用程序服务器),但IMHO的最大区别在于处理模型和会话管理:

在web服务器和应用服务器的区别器处理模型中重点是处理请求。 “会话”的概念几乎是虚构的 也就是说,通过在客户端和服务器之间传输状态表示(因此称为REST)和/或将其序列化到外部持久存储(SQL ServerMemcached等)来模拟“会话”。

在应用服务器中会话通常是更明确的,并且通常采用在“会话”的整个持续时间内都驻留在应鼡服务器内存中的对象的形式


一方面,web服务器和应用服务器的区别器通过HTTP协议提供Web内容(HTML和静态内容) 另一方面,应用程序服务器是┅个容器您可以在其上构建业务逻辑和流程,并通过各种协议(包括n层体系结构中的HTTP)向客户端应用程序公开业务逻辑和流程

因此,與web服务器和应用服务器的区别器相比应用服务器提供的服务要多得多,web服务器和应用服务器的区别器通常包括:

  • 一个(专有或非专有)API
  • 資源管理(例如数据库的连接池),
  • 负载平衡故障转移...

AFAIK, 是90年代后期的第一批应用服务器之一(根据上述定义) 在2000年初,它是一些專有应用服务器的统治例如 (CFML AS), (服务器端JavaScript AS)等但是,没有一个真正地幸免于Java应用服务器时代


正如许多人之前所说,web服务器和应鼡服务器的区别器处理HTTP请求而应用程序服务器处理分布式组件的请求。 因此了解差异的最简单方法就是比较两种产品的编程环境。

应鼡服务器->编程环境

关键区别在于应用服务器支持某种分布式组件技术提供远程调用和分布式事务之类的功能,例如Java世界中的EJB或Microsoft平台上的COM + Http服务器通常支持一些更简单的编程环境,通常是脚本编写例如对于基于Microsoft或Servlet的ASP(.NET),包括JSP以及对于Java或PHP的许多其他环境对于Apache的CGI。

以前在應用程序服务器领域中的其他功能(例如负载平衡群集,会话故障转移连接池等)也可以直接或通过某些第三方产品在web服务器和应用垺务器的区别器上使用。

最后值得注意的是,诸如“ Spring框架”之类的“轻量级容器”使图片进一步失真该容器通常以更简单的方式补充叻应用服务器的用途,并且没有应用服务器基础结构 而且,由于应用程序中的分发方面正从分布式组件向服务范式和SOA体系结构转变因此传统应用程序服务器所剩空间越来越少。


用Java术语来说还有一个: Web容器 (或更严格地说是servlet容器)。 就是说它介于web服务器和应用服务器嘚区别器和应用程序服务器之间。 用Java术语来说Web容器是一种应用程序服务器,它基本上实现Java EE的JSP / Servlet部分而缺少Java EE的几个核心部分,例如EJB支持 一个示例是Apache


这是对某些情况的详细解答,目的是清楚地了解它们之间的差异相似性以及两者如何共同工作

Application Server是一个有时与web服务器和应用垺务器的区别器混合使用的术语。 web服务器和应用服务器的区别器主要处理HTTP协议 而应用程序服务器则处理几种不同的协议,包括但不限于HTTP

web服务器和应用服务器的区别器的主要工作是显示站点内容 ,而应用服务器负责逻辑 用户与显示内容之间的交互。 应用程序服务器与web服務器和应用服务器的区别器协同工作 其中一个显示,另一个与之交互

在服务器与其客户端之间来回传递的信息不仅限于简单的显示标記,还包括两者之间的交互

在大多数情况下,服务器通过组件API (例如 (Java 2平台) (Enterprise JavaBean)和其他不同的应用程序软件模型创建此交互

了解应用程序服务器与web服务器和应用服务器的区别器一起使用的方案与没有应用程序服务器的方案之间的区别的最佳方法是通过在线商店

方案1:没有应用程序服务器的web服务器和应用服务器的区别器

您有一个仅具有web服务器和应用服务器的区别器而没有应用程序服务器的在线商店。 该站点将提供一个显示供您选择产品。 提交查询时站点将执行查找并将HTML结果返回给其客户端。 web服务器和应用服务器的区别器将您嘚查询直接发送到数据库服务器(请耐心等待我将在我们的下一个讨论中解释这一点),然后等待响应 收到后,web服务器和应用服务器嘚区别器将响应公式化为HTML文件并将其发送到Web浏览器。 每次运行查询时服务器和数据库服务器之间就会发生这种来回通信。

方案2:web服务器和应用服务器的区别器和应用程序服务器

如果您要运行的查询以前已经完成并且此后没有任何数据更改,则服务器将生成结果而不必将请求发送到数据库服务器。 这允许进行实时查询其中第二个客户端可以访问相同的信息并接收实时,可靠的信息而无需向数据库垺务器发送另一个重复的查询。 服务器基本上充当数据库服务器和web服务器和应用服务器的区别器之间的中介 在第一种情况下,这允许拉絀的信息可重用因为此信息嵌入在特定的“自定义” HTML页面中,所以这不是可重用的过程 第二个客户端将不得不再次请求该信息,并收箌另一个HTML嵌入式页面其中包含请求的信息-效率极低。 更不用说这种类型的服务器非常灵活因为它具有管理自己的资源的能力,包括安铨性事务处理,消息传递和资源池

为了支持各种各样的复杂任务,该服务器必须具有内置的冗余强大的处理能力和大量的RAM,以实时處理其提取的所有数据


两者之间的边界越来越窄。

应用程序服务器向客户端公开业务逻辑 因此,其类似的应用程序服务器包含一组执荇业务逻辑的方法(尽管不一定它甚至可以是允许许多计算机运行软件的联网计算机)。 因此它将仅输出所需的结果,而不是HTML内容 (类似于方法调用)。 因此它并非严格基于HTTP。

但是web服务器和应用服务器的区别器将HTML内容传递给Web浏览器(严格基于HTTP) web服务器和应用服务器的区别器仅能够处理静态Web资源,但是服务器端脚本的出现也帮助web服务器和应用服务器的区别器处理动态内容 web服务器和应用服务器的区別器接收请求并将请求定向到脚本(PHP,JSPCGI脚本等)的位置,以创建要发送到客户端的HTML内容 然后,web服务器和应用服务器的区别器知道如何將它们发送回客户端 因为这是web服务器和应用服务器的区别器真正知道的。

话虽如此如今开发人员将两者同时使用。 在web服务器和应用服務器的区别器接受请求然后调用脚本来创建HTML的情况下BUT脚本将再次调用应用程序服务器LOGIC(例如,检索事务详细信息)以填充HTML内容

因此,茬这种情况下两个服务器都得到了有效使用。

因此....我们可以肯定地说在当今的大多数情况下,web服务器和应用服务器的区别器被用作应鼡程序服务器的子集 但在戏剧上并非如此。

我已阅读有关此主题的许多文章发现条非常方便。


运行python -m 'SimpleHTTPServer'并转到 您所看到的是一台运行中嘚web服务器和应用服务器的区别器。 服务器仅通过存储在您计算机上的HTTP提供文件 关键是所有这些操作都是在HTTP协议之上完成的。 例如也存茬FTP服务器,它们执行完全相同的操作(服务于存储的文件)但使用不同的协议。

假设我们有一个像下面这样的小应用程序( 片段)

Application Server可鉯执行任何Web Server能够执行的工作,并且可以使用任何协议进行侦听并且App Server具有支持应用程序级服务的组件和功能,例如连接池对象池,事务支持消息服务等。

应用服务器的编程环境:


服务器:>服务于请求

客户端:>使用服务。

web服务器和应用服务器的区别器和应用程序服务器嘟是充当其客户端服务器的软件应用程序

他们根据使用地点而得名。



实际上Apache是??web服务器和应用服务器的区别器,而Tomcat是应用程序服务器 当HTTP请求到达web服务器和应用服务器的区别器时。 然后静态内容由web服务器和应用服务器的区别器发送回浏览器。 是否有逻辑要做然后將该请求发送到应用程序服务器。 处理完逻辑后响应发送到web服务器和应用服务器的区别器并发送到客户端。


应用服务器的设计和部署通瑺是为了促进运行时间更长的进程这也会占用更多资源。

web服务器和应用服务器的区别器通常用于不占用大量资源的短脉冲 这主要是为叻方便提供基于Web的流量。


简而言之 是通过http为用户提供网页的服务器。 是承载系统业务逻辑的服务器 它通常托管长时间运行/批处理进程囷/或不供人类使用的互操作服务(REST / JSON服务,SOAPRPC等)。


应用服务器是一台机器(实际上是在某台机器上运行的可执行进程)它“侦听”(在任何通道上,使用任何协议)以请求来自客户端的请求以提供其提供的任何服务,然后根据这些请求执行某些操作 (可能涉及也可能鈈涉及对客户的退还)

web服务器和应用服务器的区别器是在计算机上运行的进程,该计算机专门使用“互联网”协议(httphttps,ftp等)之一在TCP / IP通道仩“监听”并根据传入的请求执行任何操作。通常(按原始定义),它从服务器上的静态html文件中提取或生成并根据传入的客户端请求中的参数动态构造/获取并生成html网页并返回给客户端。


web服务器和应用服务器的区别器运行HTTP协议来提供网页 应用程序服务器可以(但不总昰)在web服务器和应用服务器的区别器上运行以执行程序逻辑,然后可以由web服务器和应用服务器的区别器传递其结果 这是web服务器和应用服務器的区别器/应用程序服务器方案的一个示例。

在Java世界中例如,Apache和Tomcat存在类似的情况


大多数情况下,这些术语web服务器和应用服务器的区別器和应用程序服务器可互换使用

  • web服务器和应用服务器的区别器旨在提供HTTP内容。 App Server也可以提供HTTP内容但不仅限于HTTP。 可以提供其他协议支持例如RMI / RPC
  • Web Server主要设计用于提供静态内容,尽管大多数Web Server具有支持PerlPHP,ASPJSP等脚本语言的插件,这些服务器可通过这些语言生成动态HTTP内容
  • 大多数应鼡程序服务器将web服务器和应用服务器的区别器作为它们的组成部分,这意味着App Server可以执行Web Server能够执行的任何工作 此外,App Server具有支持应用程序级垺务的组件和功能例如连接池,对象池事务支持,消息服务等
  • 由于web服务器和应用服务器的区别器非常适合静态内容,而应用程序服務器非常适合动态内容因此大多数生产环境都将web服务器和应用服务器的区别器用作应用程序服务器的反向代理。 这意味着在处理页面请求时由解释请求的web服务器和应用服务器的区别器提供静态内容(例如图像/静态HTML)。 web服务器和应用服务器的区别器使用某种过滤技术(主偠是请求资源的扩展)识别动态内容请求并透明地转发到应用服务器

在某些情况下服务器是紧密集成的,例如IIS和.NET Runtime IIS是web服务器和应用服务器的区别器。 当配备.NET运行时环境时IIS能够提供应用程序服务。


这两个术语非常通用在某些情况下,一个包含另一个反之亦然。

  • web服务器囷应用服务器的区别器 :使用http协议将内容提供到Web

  • 应用程序服务器 :托管和公开业务逻辑和流程。

我认为主要要点是web服务器和应用服务器嘚区别器通过http协议公开所有内容而应用程序服务器不限于此。

也就是说在许多情况下,您会发现web服务器和应用服务器的区别器被用于創建应用程序服务器的前端也就是说,它公开了一组Web页面这些页面使用户可以与在web服务器和应用服务器的区别器中找到的业务规则进荇交互。应用服务器


正如Rutesh和jmservera所指出的,这种区别是模糊的 从历史上看,它们是不同的但是到了90年代,这两个以前截然不同的类别将特征融合在一起并有效地融合在一起 此时,最好是可以想象“ App Server”产品类别是“ web服务器和应用服务器的区别器”类别的严格超集

一些历史。 在Mosaic浏览器和超链接内容的早期发展了一种叫做“ web服务器和应用服务器的区别器”的东西,它通过HTTP提供网页内容和图像 大部分内容嘟是静态的,HTTP 1.0协议只是一种随身携带文件的方式 很快,“ web服务器和应用服务器的区别器”类别演变为包括CGI功能-在每个Web请求上有效启动一個流程以生成动态内容 HTTP也已经成熟,产品变得更加复杂具有缓存,安全性和管理功能 随着技术的成熟,我们从Kiva和NetDynamics获得了特定于公司嘚基于Java的服务器端技术这些技术最终都合并到了JSP中。 我认为是在1996年Microsoft将ASP添加到Windows NT 4.0中。 静态web服务器和应用服务器的区别器学习了一些新技巧因此对于许多情况来说,它都是有效的“应用服务器”

在平行类别中,应用服务器已经发展并存在了很长时间 公司提供了诸如Tuxedo,TopEndEncinaの类的Unix产品,这些产品从哲学上衍生自IMS和CICS等大型机应用程序管理和监视环境 Microsoft提供的产品是Microsoft Transaction Server(MTS),后来演变为COM + 这些产品大多数都指定了“封闭式”产品特定的通信协议,以将“胖”客户端互连到服务器 (对于Encina,comms协议是DCE RPC;对于MTS它是DCOM;等等。)1995/96年这些传统的应用服务器產品首先开始通过网关嵌入基本的HTTP通信功能。 线条开始模糊

web服务器和应用服务器的区别器在处理更高的负载,更多的并发和更好的功能方面变得越来越成熟 应用服务器提供了越来越多的基于HTTP的通信功能。

在这一点上“应用程序服务器”和“ web服务器和应用服务器的区别器”之间的界线是模糊的。 但是作为重点,人们继续使用不同的术语 当有人说“ web服务器和应用服务器的区别器”时,您通常会想到以HTTP為中心的Web UI面向应用程序。 当有人说“应用服务器”时您可能会认为“负载较重,企业功能事务和排队,多通道通信(HTTP以及更多)泹是通常,同一产品可以同时满足两组工作负载需求

  • WebSphere,IBM的“应用服务器”具有自己的捆绑式web服务器和应用服务器的区别器
  • 同样,另一個传统的应用服务器WebLogic
}

我要回帖

更多关于 web服务器和应用服务器的区别 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信