应用服务器和web服务器之间的区别是什么?


当前回答

IBM在这两者之间做了一个非常好的比较:

严格定义,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服务器和应用程序服务器技术的组合提供。

其他回答

应用程序服务器是一台机器(实际上是在某台机器上运行的可执行进程),它“监听”(在任何信道上,使用任何协议)客户端对其提供的任何服务的请求,然后根据这些请求执行某些操作。(可能涉及或不涉及对客户的回应)

Web服务器是在一台机器上运行的进程,该机器使用“互联网”协议之一(http、https、ftp等)专门“侦听”TCP/IP信道,并根据这些传入的请求执行任何操作。。。通常,(按照最初的定义),它获取/生成并向客户端返回一个html网页,或者从服务器上的静态html文件获取,或者根据传入客户端请求中的参数动态构建。

从…起https://en.wikipedia.org/wiki/Web_server

web服务器是通过HTTP处理请求的计算机系统,HTTP是用于在万维网上分发信息的基本网络协议。该术语可以指整个系统,或者具体指接受和监督HTTP请求的软件。

从…起https://en.wikipedia.org/wiki/Application_server#Application_Server_definition

应用程序服务器运行在web服务器(例如Apache或Microsoft Internet Information Services(IIS))后面,并且(几乎总是)运行在SQL数据库(例如PostgreSQL、MySQL或Oracle)前面。

Web应用程序是在应用程序服务器上运行的计算机代码,用应用程序服务器支持的语言编写,并调用应用程序服务器提供的运行库和组件。

简言之web服务器是通过HTTP请求向用户提供静态网页的服务器。应用服务器是承载系统的业务逻辑的服务器。它通常同时托管长时间运行的/批处理进程和/或互操作服务,这些服务不适合人类使用(REST/JSON服务、SOAP、RPC等)。

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

以上所有这些都是非常简单的事情。应用服务器包含一个web服务器,与标准web服务器相比,应用服务器只需要对其进行更多的添加/扩展。如果您以TomEE为例:

CDI - Apache OpenWebBeans
EJB - Apache OpenEJB
JPA - Apache OpenJPA
JSF - Apache MyFaces
JSP - Apache Tomcat
JSTL - Apache Tomcat
JTA - Apache Geronimo Transaction
Servlet - Apache Tomcat
Javamail - Apache Geronimo JavaMail
Bean Validation - Apache BVal

您将看到Tomcat(Web容器/服务器)只是应用服务器库中的另一个工具。如果你愿意,你也可以在web服务器上获得JPA和其他技术,但应用服务器只是为了你的方便而打包所有这些东西。要完全归类为应用服务器,您基本上需要遵守某个标准列出的工具列表。