在JavaEE 開發Web中,咱們常常會聽到Web服務器(Web Server)、Web容器(Web Container)、應用服務器(Application Server),等容易混淆很差理解名詞。本文介紹對三者的理解,以及區別與聯繫,若是有不正確的地方還請指正。css
由上圖能夠看到一個標準的http處理流程:html
Web Server
或者叫 HTTP Server
,主要用於操做Http請求,包括接受客戶端的請求以及響應。它能夠處理請求,也能夠將請求轉發至其餘服務器。java
表明:Nginx
、apache
、IIS
web
Web Server市場佔有率以下spring
Application Server 具有了 Web Server 處理http請求的能力(但可能沒有Web Server專業)同時也支持了JavaEE 技術好比JMS、DI、JPA、Transactions、Concurrency等,同時也包含了Web Container,以下圖。apache
表明:Bea WebLogic
, IBM WebSphere
服務器
應用服務器能夠選擇使用上文所說的 WebLogic
和 WebSphere
這種重量級產品外,也可使用相似與Tomcat
、jetty
這樣的web containner 再加上第三方的框架(spring,hibernate等)來構建本身的Application Server
。app
JavaEE Application Server市場佔有率框架
一個典型的JavaEE系統能夠由兩部分構成首先是Web Server 用於處理靜態資源,而後是JavaEE Application Server 用於處理業務的動態資源。而這兩部分能夠是單獨的服務器例如Nginx+WebSphere也能夠在一個服務器上完成好比Tomcat(Tomcat便可以處理靜態資源又能夠處理動態的Servlet)。jsp
參考連接
[3]https://coderanch.com/t/598746/Websphere/application-server-web-server-web