1. tomcat是誰?html
2. tomcat能夠作什麼?web
tomcat是一個web容器,能夠將web應用部署到tomcat,由它提供web服務,一個web容器中能夠部署多個web應用,這些web應用能夠是同一個域名,也能夠是多個域名的服務。tomcat
3. tomcat有哪些組件服務器
4.怎麼快速理解這些組件呢?網絡
咱們能夠假設咱們來設計一個web容器,咱們該什麼設計?架構
第一代:接收請求,處理請求,返回結果集中到整個web容器中,以下圖所示:app
第二代 :鏈接管理和處理邏輯分開socket
使用過程當中發現,每次都要打開socket的鏈接,調用處理邏輯,而後關閉socket鏈接比較煩,乾脆將socket的鏈接關閉交給Connector來處理,請求的業務邏輯交給Container來處理好了,就變成這樣了。設計
第三代:支持多種網絡協議3d
最初的目標是設計一個web服務器或者容器,那麼若是想要支持更多的協議就須要新建不一樣的Connector和Container,此時就變成這樣子了,其中service包裝了Connector和Container
第四代:支持多個web應用
既然是容器,就要支持多個應用,每一個應用是有一個Context,且相互隔離,支持多個Context的架構以下:
第五代:支持多域名
Context上下文不單單須要物理上的隔離,也須要邏輯上的隔離,如app1.example.com訪問context1,app1.test.com訪問context2.
此時的架構應該是這樣的,host能夠支持多個context。
5.總結:
web服務器的組件由server-->知足功能
server+connector+Container-->職責分離
server+service+connector+Container-->支持多種協議
server+service+connector+Container+context-->支持多個應用
server+service+connector+Container+host+context -->支持多個域名的多個應用
其實就是一個分工組件細化的過程,相似於社會分工的細化,注意,Container在tomcat裏也稱做engine。
原文出處:https://www.cnblogs.com/davidwang456/p/11323101.html