tomcat8请求处理流程图(nio、http)
2023-03-27 15:31:03 13 举报
tomcat8请求处理流程
作者其他创作
大纲/内容
this.service
host.getPipeline().getFirst().invoke
SocketProcessor
processSocket
Poller
Http11InputBuffer
每接收到一个io就绪事件,就交给一个SocketProcessor来处理
InputBuffer
NioEndpoint.Acceptor
解析GET、POST等请求
每接收到一个socketChannel就绑定到一个Poller上
run
executor.execute
此处执行servlet业务方法
HttpServlet
StandardContextValve
selector
AbstractNioEndpoint
在此将socketWrapper交给processor解析
context.getPipeline().getFirst().invoke
parseRequestLine
Http11Processor
绑定到poller并监听io事件
监听ioevent,交给processor解析
CoyoteAdapter
Executor线程池
wrapper.getPipeline().getFirst().invoke
processKey
ApplicationFilterChain
StandardWrapperValve
启动tomcatstartInternal
pollers(几个固定的线程组成的数组)
Servlet
AbstractProcessorLight
processor.process
在此将request、response传递给servlet容器
startAcceptorThreads创建acceptor线程,并启动
OutputBuffer
doRun
pollerThread.start()
NioEndPoint.SocketProcessor
setSocketOptions
Acceptor
envent状态=UPGRADING
StandardHostValve
具体的解析请求
NioEndPoint
events
AbstractProtocol
getHandler().process
StandardEngineValve
NioEndpoint.Poller
Http11OutputBuffer
收藏
0 条评论
下一页