平时我们经常看到各种容器名称:Servlet 容器、WEB 容器、Java WEB 容器、Java EE 容器等,还有各种服务器名称:应用服务器、WEB 服务器、WEB 应用服务器、Java WEB 应用服务器、Java EE 服务器等,这么多相似名称,难以弄明白它们之间的区别与联系

下面我们尝试从它们的定义中,区分它们,找出它们之间的联系


一、容器与服务器的联系

  • 容器是位于应用程序/组件和服务器平台之间的接口集合,使得应用程序/组件可以方便部署到服务器上运行

二、各种容器之间的区别/联系

容器和微服务的关系 容器和服务器_服务器

  • 容器
  • 容器通常理解就是装东西的,我们这里说技术上的容器就是可以部署应用程序,并在上面运行的环境
  • 一般来说,它处理屏蔽了服务器平台的复杂性,使得应用程序在它的基础上可以方便快捷的部署;而对于应用程序来说,它就是位于是应用程序和平台之间的接口集合
  • 容器管理组件的生命周期,向应用程序组件分派请求,并提供与上下文数据 (如关于当前请求的信息) 的接口
  • Servlet 容器
  • Servlet
  • 属于 Java EE 重要的技术规范,构建了 “接收请求 – 调用 Servlet 程序处理 – 返回响应” 基本模型
  • 是一种服务端的 Java 应用程序,用于处理用户请求和响应数据,是一门用于开发动态 web 资源的技术
  • Servlet 程序
  • Java 提供了开发 Servlet 程序的 API,该 API 可以说是 Servlet 容器的一部分,它对接应用程序与 Servlet 容器
  • Servlet 容器
  • 实现了 Servlet 技术规范的部署环境,它可以部署运行 Servlet 程序
  • Java Web 容器
  • WEB 容器
  • 可以部署多个 WEB 应用程序的环境
  • Java WEB 容器
  • 实现了 Java EE 规定的 WEB 应用技术规范的的部署环境
  • Java EE WEB 应用技术规范
  • 包括 Servlet、JSP (JavaServer Pages)、Java WebSocket 等技术
  • 完整的 Java WEB 容器包含 Servlet 容器
  • Java EE 容器
  • Java EE 容器
  • 实现了 Java EE 技术规范的部署环境
  • Java EE 技术规范
  • 除了上面说的 Servlet、JSP 等 Java EE WEB 应用技术规范,还包括 EJB (Enterprise JavaBeans) 等许多技术规范
  • 完整的 Java EE 容器包含 Java WEB 容器 (Servlet 容器)、EJB 容器等

三、各种服务器之间的区别/联系

容器和微服务的关系 容器和服务器_应用程序_02

  • 服务器
  • 服务器是提供计算服务的设备,由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力
  • 简单来说,服务器是提供某些服务的设备
  • WEB 应用服务器
  • 应用程序
  • 是指为针对使用者的某种应用目的所编写的软件
  • 应用服务器
  • 就是运行应用程序,提供应用程序所实现服务的设备
  • 通常来说,服务器端的应用程序实现各种业务逻辑,应用服务器通过各种协议把这些业务逻辑曝露给客户端的程序,它提供了访问商业逻辑的途径,以供客户端应用程序使用,应用服务器使用此业务逻辑就像调用对象的一个方法一样
  • WEB 服务器
  • WEB
  • 现广泛译作网络、互联网等技术领域,表现为三种形式,即超文本 (hypertext)、超媒体 (hypermedia)、超文本传输协议 (HTTP)
  • WEB 服务器
  • 一般指网站服务器,可以向浏览器等 WEB 客户端提供文档浏览、数据文件下载等 WEB 服务
  • 简单来说,WEB 服务器是提供网上信息浏览等 WEB 服务的设备
  • WEB 应用服务器
  • 下面我们把应用服务器和 WEB 服务器严格区分
  • 应用服务器
  • 通过应用程序接口 (通常是网络请求 API) 把业务逻辑暴露给客户端应用程序
  • Web 服务器
  • 通过 HTTP 请求提供静态内容给浏览器等客户端
  • 如果不严格区分,应用服务器可以包含 WEB 服务器,因为 WEB 服务器是由 WEB 服务应用程序实现的
  • WEB 应用服务器
  • 结合应用服务器和 WEB 服务器,可以说它是带应用服务器的 WEB 服务器,接收 HTTP 请求后,既能返回页面等静态内容,又能处理业务逻辑返回数据
  • Java EE 服务器
  • Java EE 服务器是实现 Java EE 技术规范,并提供标准 Java EE 服务的应用程序服务器
  • Java EE 服务器有时也被称为应用服务器,因为它们允许我们向客户端提供应用数据,就像 Web 服务器向 Web 浏览器提供 Web 页面一样