web服务器/应用服务器/http服务器/中间件

web服务器:只处理html静态页面不处理动态页面,如apache/nginx/iis等。php

应用服务器:能处理html静态页面也能处理动态页面,如tomcat/weblogic/websphere/jboss等。html

http服务器:等同web服务器。nginx

中间件:通常指应用服务器。但从中间件的定义--处于应用和应用、应用和系统之间的软件--来讲,web服务器也能够算中间件,另外还有消息中间件等其余一些也是中间件。web

 

说明:apache

1)就自己而言web服务器确实是不支持解析动态语言的:apache是不能解析php的iis也不能解析.net,前者是经过引入php模块后者是引入解析引擎才能解析的。tomcat

2)如今基本没有全静态页面的网站,web服务器经常要引入模块组成应用服务器使用同时单纯应用服务器也具备web服务器的功能,之因此还一直存在web服务器的概念主要是由于其在负载均衡(有数台机器部署了该网站)和反向代理(如php页面给php-fpm处理jsp页面给tomcat处理)上仍是很好用的;另外在处理静态页面上应用服务器也不及web服务器好。服务器

3)web服务器支持动态语言的两种方式:Handler模式和CGI模式。在系统层面上看Handler模式中web服务器和引入模块同属一个进程,而在CGI模式中web服务器和CGI是两个独立的进程。前者的典型表明是apache引入模块支持php,后者的典型表明是nginx经过php-fpm支持php架构

4)严格来讲还将CGI模式分红CGI模式和FastCGI模式,前者对每一个请求都fork一个进程去处理,这样显然是低效的;后者进行改进对全部请求都是一个进程在处理。上边说的php-fpm其实是FastCGI模式。负载均衡

5)实际上Apache解析php除了Handler模式,也支持CGI和FastCGI模式jsp

6)中间件能够分为3大类:应用服务类中间件(等同应用服务器)、应用集成类中间件(消息中间件属于这类)、业务架构类中间件。