tomcat的架構圖大概是這樣的規律,
乙個server有多個servcie,
乙個service分為conector、container、realm、logging、sesssion、jspaer等元件,
connector分為http/ajp的connector,
container有乙個engine,
乙個engine有多個host,
乙個host有多個context,
接下來再看圖,結構大概是這樣子。
其實在connector內部還有好多元件,比如 protocol 、endpoint 、acceptor等。讀了原始碼之後梳理的大概邏輯如下,做個筆記,箭頭指向是依賴呼叫鏈路。
圖可能不太清晰,附上plantuml原始碼。
http11processor ->coyoteadaptor: 這開始處理tomcat\n的request和response。
coyoteadaptor ->pipeline: pipeline通過鏈式處理把請求\n從connector發到container處理。
pipeline ->standardengine: 實際上是standardenginevalue
standardengine ->standardhost: 實際上是standardhostvalue
standardhost ->standardcontext: 實際上是standardcontextvalue
@enduml
Tomcat 請求流程
以nio為例 1.nioendpoint.acceptor 阻塞處理 accept 並把合適的socket 放置blockingqueue 2.nioendpoint.poller 從blockingqueue拿socket,使用nio的非阻塞方式 處理read 把read 事件ready的sock...
Tomcat執行流程
tomcat內部流程圖 假設來自客戶的請求為 http localhost 8080 test index.jsp 請求被傳送到本機埠8080,被在那裡偵聽的coyote http 1.1 connector獲得 connector把該請求交給它所在的service的engine來處理,並等待eng...
HTTP請求流程
最近一直在研究如何讓asp.net實現上傳大檔案的功能,所以都沒怎麼寫技術類的文章了。可惜的是至今還沒研究出來,慚愧 不過因為這樣,也了解了一下http訊息請求的大致過程。我就先簡單介紹下,然後再來講如何利用telnet來模擬http請求。講得不對的地方還希望大家給我指出來。因為內容比較多,所以分成...