Web 和应用服务器经常被混淆,部分是因为它们一起工作,部分是因为一些供应商将 Web 和应用服务器整合到两用机器中。类似地,使用“Web 应用程序服务器”等术语给人的印象是它们是双单元,而实际情况是它们通常是不同的、独立的节点。
Web 服务器和应用程序服务器之间的关键区别在于它们如何交付 Web 和应用程序内容。从互联网的早期开始,Web 服务器一直是为 Web 客户端请求提供服务的媒介。Web 服务器接收客户端请求并从相关数据库中检索内容以提供给客户端。相比之下,应用服务器也为客户端提供 Web 内容,但能够处理动态请求。
随着万维网的发展,网页脚本从 HTML 转变为JavaScript,网页内容变得更具交互性。动态脚本语言的引入推动了Web 开发向前发展,并产生了当今可用的软件、工具和应用程序。这种转变推动了 Web 服务器功能的界限,并导致在服务器管理中采用另一台称为应用程序服务器的高度专业化的计算机。本文着眼于 Web 服务器和应用服务器所扮演的角色以及它们之间的区别。
什么是网络服务器?
Web 服务器是负责以下各项的计算机系统:
- 收藏
- 加工
- 并向客户(用户/浏览器)提供 Web 内容
为了检索 Web 资源,用户使用 Web 浏览器从 Web 服务器请求 Web 内容。无论是虚拟设备还是物理设备,Web 服务器都会接收来自 Web 浏览器的 HTTP 请求,将请求转换为网页的底层数据库,并使用请求的资源进行响应。也就是说……如果资源是静态内容,例如 PDF 或新闻文章。
HTML:静态内容
自 1990 年代初以来,超文本标记语言 (HTML) 一直是用于生成网页内容的主要编程语言。静态网页存储在 Web 组织的数据库中,以 HTML 代码的形式显示在客户端的 Web 浏览器上。用户将 HTML 内容识别为字体、文档、图像和视频。这些网页上的内容是静态的,因为 Web 服务器为请求该特定网页的所有客户端检索相同的实例。这种对静态数据的轻松服务使 Web 服务器能够为多个网页和站点提供服务。
网络服务器有限
遗憾的是,Web 服务器在面向服务架构 (SOA) 中的角色并不是管理 2020 年代高级 Web 内容请求的万能,这让我们想到了 Web 服务器最好的朋友,即应用程序服务器。
什么是应用服务器?
与 Web 服务器一样,应用程序服务器是一台能够处理 HTTP 请求、为基于 Web 的应用程序提供服务以及使用 Web容器来满足客户端请求的计算机。然而,应用服务器更进一步的是它们对应用数据库的访问和动态内容的传输。凭借处理业务逻辑请求的能力,承担比 Web 服务器更重的工作负载,并支持多线程,应用程序服务器是推动当前应用程序经济的主力军。
动态内容需要更多的服务器专业化
任何提供客户端不需要启动另一个页面的交互式或实时工具的网页都可能归功于动态脚本和应用程序服务器的工作。动态网页通常包括实时分析、金融交易和安全软件。例如,谷歌是世界上访问量最大的网站,为网络客户端提供了大量工具。其中一个程序是内置于 Google 搜索引擎的计算器。当客户进行数学方程式搜索时,Google 会识别该请求并在搜索结果网页上显示计算器。如果客户继续使用计算器,他们会注意到 URL 在所有计算中都没有改变。由于页面中嵌入了动态脚本,计算器可以对客户端输入做出反应,并能够处理与 Web 服务器活动分开的请求。
Web 和应用程序服务器如何协同工作?
下图显示了三个通信方:客户端、应用程序服务器和数据库服务器。当用户使用 Google Chrome 或 Firefox 等网络浏览器时,浏览器充当请求特定资源的客户端。在下面的实例中,Web 服务器位于客户端和应用程序服务器之间,为 HTTP 请求提供服务,Web 服务器可以促进静态内容。当 Web 服务器收到超出其能力的请求时,应用服务器完成交换。
Web 服务器与应用服务器之间的差异
网络服务器
- 托管网页并响应请求
- 提供静态内容
- 仅使用 HTTP 协议
- 仅提供基于 Web 的应用程序
- 不支持多线程
- 访问静态数据库
- 促进轻量级网络流量
- 存储容量低
- 使用网络容器
- 适用于网络浏览器
- 在浏览器上提供超文本
应用服务器
- 托管应用程序和高级数据资源
- 提供动态内容
- 为应用程序使用 HTTP 和业务逻辑
- 为基于 Web 和企业的应用程序提供服务
- 支持多线程并行
- 访问应用程序数据库
- 促进更重的数据工作负载
- 高存储容量
- 使用 Web 和应用程序客户端容器
- 适用于浏览器、Web 和移动应用程序
- 提供海量数据资源