0

我总是对 Web 服务器和应用程序服务器感到困惑。有人可以告诉我这两者之间到底有什么区别。

4

6 回答 6

4

实际上,几乎没有区别,大多数人可以互换使用该术语。

对我来说细微的差别是:

  • Web 服务器提供网页和静态内容。不是动态内容。

  • 应用程序服务器可以是 Web 服务器(具有动态内容),尽管它可能根本不是。它为程序员提供了一个 API。

像往常一样,维基百科有最好的定义。

网络服务器

帮助提供可通过互联网访问的内容的计算机应用程序。

应用服务器

应用服务器是专用于有效执行用于支持应用程序构建的过程(程序、例程、脚本)的软件框架。

...

应用程序服务器充当一组组件,软件开发人员可以通过平台本身定义的 API 访问这些组件。

于 2010-12-01T10:17:39.587 回答
1

应用程序服务器是任何应用程序级协议上的任何服务器。

HTTP 是应用程序级协议,因此 Web 服务器就是应用程序服务器。应用服务器也可以使用完全不同的协议。

但是,如果说 Web 服务器运行“Web 应用程序”,则它仅可能被称为应用程序服务器,这通常意味着具有一定(任意)复杂程度的“动态”内容。这在技术上是无稽之谈,因为所有 HTTP 都在应用程序级别(并且在外部是一个黑盒子,因此它是从“静态”内容还是“动态”内容提供的无关紧要)。

尽管如此,这种区别的部分原因是有些人仍然将 HTTP 视为某种传输协议,并期望有应用程序“在上面”,但主要是为了让营销人员暗示存在某种有意义的区别制作,您应该投资他们的“应用程序服务器”而不是网络服务器。

于 2010-12-01T10:40:02.633 回答
0

网络服务器:

  • Apache、IIS、nginx、Lighttpd 等。

他们可以通过 CGI、FastCGI、SCGI、模块等与 CGI 后端、PHP、.Net、Lua 等应用程序交互来生成动态内容。

网络应用服务器:

  • Tomcat/JBoss/GlassFish/WebSphere(Java 脚本)、G-WAN(ANSI C 脚本)等。

他们通过使用集成脚本引擎(如上述示例中的 Java 或 C 脚本)来原生生成动态内容。

应用程序服务器通常更快,因为它们不必承受服务器和脚本引擎之间的 INTERFACE 开销。

于 2010-12-18T21:46:10.657 回答
0

基本上,服务器只是计算机正在执行的任务。服务器不是机器的名称(尽管通常称它为服务器)。所以一台机器可以作为网络服务器、应用服务器等等。

Web 服务器意味着服务器正在交付 Web 内容(HTML、PHP 等)。典型的服务器软件是 Apache 或 IIS。

应用程序服务器是一个更通用的术语。根据定义,Web 服务器也是应用程序服务器(Apache 软件是应用程序)。但应用程序服务器并不局限于交付 Web 内容。

我希望它不会太令人困惑;-)

于 2010-12-01T10:21:54.467 回答
0

“Web 服务器”意味着 HTTP(很可能是 HTML);“应用服务器”可以是任何协议。

甚至这种区别也不是 100%,除此之外,还有激烈的领域和对语义的争论。

于 2010-12-01T10:23:42.890 回答
0

If your question comes from the Java domain, an application server is a fully conformant server to J2EE specification, providing all related features (e.g. Glassfish, JBoss, WebLogic)
A web server on the other hand is just light-weight server not fully implementing the J2EE specs (e.g. Apache Tomcat)

于 2010-12-01T11:25:33.157 回答