JavaEE中Web服务器、Web容器、Application服务器区别及联系

9588琳 8年前
   <p>在JavaEE 开发Web中,我们经常会听到Web服务器(Web Server)、Web容器(Web Container)、应用服务器(Application Server),等容易混淆不好理解名词。本文介绍对三者的理解,以及区别与联系,如果有不正确的地方还请指正。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/7fcce19737fc16ce39027d732a27ad1f.png"></p>    <p>由上图可以看到一个标准的http处理流程:</p>    <ol>     <li>首先通过Web Server 接受Http请求;</li>     <li>比如html、css等静态资源 Web Server 可自行处理;</li>     <li>当遇到动态资源(jsp等)时候Web Server 将请求转接至Application Server中,由Application Server处理;</li>    </ol>    <h2><strong>Web服务器(Web Server)</strong></h2>    <p>Web Server 或者叫 HTTP Server ,主要用于操作Http请求,包括接受客户端的请求以及响应。它可以处理请求,也可以将请求转发至其他服务器。</p>    <p>代表: Nginx 、 apache 、 IIS</p>    <p>Web Server市场占有率如下</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/b5edb435c1acff03d9b4ef28db85279a.png"></p>    <h2><strong>应用服务器(JavaEE Application Server)</strong></h2>    <p>Application Server 具备了 Web Server 处理http请求的能力(但可能没有Web Server专业)同时也支持了JavaEE 技术比如JMS、DI、JPA、Transactions、Concurrency等,同时也包含了Web Container,如下图。</p>    <p>代表: Bea WebLogic , IBM WebSphere</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/7ccedbf21830d459532a2d8e53ba3322.png"></p>    <p>应用服务器可以选择使用上文所说的 WebLogic 和 WebSphere 这种重量级产品外,也可以使用类似与 Tomcat 、 jetty 这样的web containner 再加上第三方的框架(spring,hibernate等)来构建自己的 Application Server 。</p>    <p>JavaEE Application Server市场占有率</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/23eb831de3a930b139a143181c50c40f.png"></p>    <h2>组合应用</h2>    <p>一个典型的JavaEE系统可以由两部分构成首先是Web Server 用于处理静态资源,然后是JavaEE Application Server 用于处理业务的动态资源。而这两部分可以是单独的服务器例如Nginx+WebSphere也可以在一个服务器上完成比如Tomcat(Tomcat即可以处理静态资源又可以处理动态的Servlet)。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/c194be6f2faf6568947d6dda5e45dd4b.png"></p>    <p> </p>    <p>来自:http://www.cnblogs.com/vipyoumay/p/5853694.html</p>    <p> </p>