应用程序服务器(简称应用服务器),我们先看一下微软对它的定义:我们把应用程序服务器定义为“作为服务器执行共享业务应用程序的底层的系统软件”。 就像文件服务器为很多用户提供文件一样,应用程序服务器让多个用户可以同时使用应用程序(通常是客户创建的应用程序)
通俗的讲,web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法 (methods)。确切一点,你可以说:web服务器专门处理http请求(request),但是应用程序服务器是通过很多协议来为应用程序提供 (serves)商业逻辑 (business logic)。
以java ee为例,web服务器主要是处理静态页面处理和作为 servlet容器,解释和执行servlet/jsp,而应用服务器是运行业务逻辑的,主要是ejb、 jndi和jmx api等j2ee api方面的,还包含事务处理、数据库连接等功能,所以在企业级应用中,应用服务器提供的功能比web服务器强大的多。
以这样的定义,iis、apache、tomcat都可以属于web服务器,weblogic、websphere都属于应用服务器。
apache:在web服务器中,apache是纯粹的web服务器,经常与tomcat配对使用。它对html页面具有强大的解释能力,但是不能解释嵌入页面内的服务器端脚本代码(jsp/servlet。
tomcat:早期的tomcat是一个嵌入apache内的jsp/servlet解释引擎apache+tomcat就相当于iis+asp。后来的 tomcat已不再嵌入apache内,tomcat进程独立于apache进程运行。 而且,tomcat已经是一个独立的servlet和jsp容器,业务逻辑层代码和界面交互层代码可以分离了。因此,有人把tomcat叫做轻量级应用服 务器。
iis:微软早期的iis,就是一个纯粹的web服务器。后来,它嵌入了asp引擎,可以解释vbscript和jscript服务器端代码了,这时,它 就可以兼作应用服务器。当然,它与j2ee应用服务器根本无法相比,但是,从功能上说,从原理上说,它勉强可以称之为应用服务器。确切地说,它是兼有一点 应用服务器功能的web服务器。
综上:apache是纯粹的web服务器,而tomcat和iis因为具有了解释执行服务器端代码的能力,可以称作为轻量级应用服务器或带有服务器功能的web服务器。