根据严格的定义,Web服务器是应用程序服务器的常见子集。
Web服务器主要响应于来自Web浏览器的超文本传输协议(HTTP)请求,交付静态Web内容(例如HTML页面,文件,图像,视频)。
应用程序服务器通常也可以交付Web内容,但是其主要工作是使最终用户客户端与服务器端应用程序代码(代表通常称为业务逻辑的代码)之间进行交互,以生成和交付动态内容,例如事务。结果,决策支持或实时分析。应用程序服务器的客户端可以是应用程序自己的最终用户UI,Web浏览器或移动应用程序,并且客户端与服务器之间的交互可以通过任何数量的通信协议进行。
但是,实际上,Web服务器和应用程序服务器之间的界限变得越来越模糊,特别是随着Web浏览器作为首选的应用程序客户端出现,并且随着用户对Web应用程序和Web应用程序性能的期望不断提高,这种现象也越来越明显。
大多数Web服务器都支持脚本语言(例如ASP,JSP,PHP,Perl)的插件,这些插件使Web服务器能够基于服务器端逻辑生成动态内容。而且,越来越多的应用服务器不仅具有Web服务器功能,而且还使用HTTP作为其主要协议并支持其他协议(例如CGI和CGI变体)与Web服务器接口。它们还允许Web应用程序利用诸如反向代理,群集,冗余和负载平衡之类的服务,这些服务可提高性能和可靠性,并允许开发人员减少对基础结构的关注,而将更多精力放在基础架构上。
为了使事情更加混乱,许多Web服务器和某些应用程序服务器被称为或称为Web应用程序服务器。
最重要的是,当今最流行的Web服务器和应用程序服务器是两者的混合体。您今天使用的大多数功能日益丰富的应用程序都具有静态Web内容和动态应用程序内容的组合,这些内容是通过Web服务器和应用程序服务器技术的组合提供的。