应用服务器和web服务器之间的区别是什么?
当前回答
web服务器:对于每个URL,它都返回一个文件。这就是它的全部功能。该文件是静态内容,也就是说,在您提出请求之前,它存储在服务器的某个位置。最流行的web服务器是apachehttp和nginx。应用程序服务器:对于每个URL,它都会运行一些用某种语言编写的代码,生成一个响应并返回它。响应事先不存在,它是为您的特定请求生成的,也就是说,它是动态内容。每种语言的应用程序服务器都不同。一些流行的例子是java的tomcat/jetty,python的uwsgi/gunicorn。
几乎您访问的每个页面都同时使用这两种功能。静态内容(例如,图像、视频)由web服务器提供,其余部分(您和其他用户之间不同的部分)由应用服务器生成。
其他回答
在Java术语中,还有一个:web容器(或者更严格地说,servlet容器)。例如,它位于web服务器和应用程序服务器之间。
Java术语中的web容器是一个应用服务器,它基本上只实现JavaEE的JSP/Servlet部分,并且缺少JavaEE的几个核心部分,例如EJB支持。Apache Tomcat就是一个例子。
最大的区别是Web服务器处理HTTP请求,而应用程序服务器将在任意数量的协议上执行业务逻辑。
web服务器运行HTTP协议来服务网页。应用服务器可以(但不总是)在web服务器上运行以执行程序逻辑,然后可以由web服务器交付程序逻辑的结果。这是web服务器/应用程序服务器场景的一个示例。
Microsoft世界中的一个很好的例子是Internet Information Server/SharePoint Server关系。IIS是一个web服务器;SharePoint是一个应用程序服务器。SharePoint位于IIS之上,执行特定的逻辑,并通过IIS提供结果。
例如,在Java世界中,Apache和Tomcat也有类似的场景。
不一定有明确的分界线。如今,许多程序结合了服务http请求(web服务器)和处理业务逻辑(app服务器)的元素
从上面那些很棒的SO福音传道者的帖子中得出我的结论,我得出结论,两者都是驻留在实际金属服务器(物理服务器)上的软件。两者携手合作,为最终用户提供服务。然后,根据设置,我们可以选择调用它,这意味着如何描述它取决于实际使用的设置。如果它们都位于同一个裸机(物理服务器)上,我们称之为web和应用服务器。。。易于理解的如果在不同的机器上,显然,我们手中有两个不同的裸机(物理服务器)。然后,我们可以根据这些服务器的功能来标记它们:一个web服务器和另一个应用程序服务器。