共计 975 个字符,预计需要花费 3 分钟才能阅读完成。
在 JavaEE 开发 Web 中,我们经常会听到 Web 服务器(Web Server)、Web 容器(Web Container)、应用服务器(Application Server),等容易混淆不好理解名词。本文介绍对三者的理解,以及区别与联系,如果有不正确的地方还请指正。
由上图可以看到一个标准的 http 处理流程:
- 首先通过 Web Server 接受 Http 请求;
- 比如 html、css 等静态资源 Web Server 可自行处理;
- 当遇到动态资源 (jsp 等) 时候 Web Server 将请求转接至 Application Server 中,由 Application Server 处理;
Web 服务器(Web Server)
Web Server
或者叫 HTTP Server
, 主要用于操作 Http 请求,包括接受客户端的请求以及响应。它可以处理请求,也可以将请求转发至其他服务器。
代表:Nginx
、apache
、IIS
Web Server 市场占有率如下
应用服务器(JavaEE Application Server)
Application Server 具备了 Web Server 处理 http 请求的能力 (但可能没有 Web Server 专业) 同时也支持了 JavaEE 技术比如 JMS、DI、JPA、Transactions、Concurrency 等,同时也包含了 Web Container,如下图。
代表:Bea WebLogic
, IBM WebSphere
应用服务器可以选择使用上文所说的 WebLogic
和 WebSphere
这种重量级产品外,也可以使用类似与 Tomcat
、jetty
这样的 web containner 再加上第三方的框架 (spring,hibernate 等) 来构建自己的Application Server
。
JavaEE Application Server 市场占有率
组合应用
一个典型的 JavaEE 系统可以由两部分构成首先是 Web Server 用于处理静态资源,然后是 JavaEE Application Server 用于处理业务的动态资源。而这两部分可以是单独的服务器例如 Nginx+WebSphere 也可以在一个服务器上完成比如 Tomcat(Tomcat 即可以处理静态资源又可以处理动态的 Servlet)。
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-09/146758.htm