tomcat請求流程淺解

2022-07-10 04:33:11 字數 1170 閱讀 3595

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請求。講得不對的地方還希望大家給我指出來。因為內容比較多,所以分成...