Tomcat工作原理
要了解其中的工作原理我们首先看如下两个图
Tomcat基本架构图:
Tomcat请求示意图:
客户端的请求通过Connector接受处理后在到容器Engine->Host->Conetxt->进一步处理。
因此我们知道Tomcat的核心类就是Connector 了。
初始化Connector时,Tomcat 默认使用的是HttpNioProtocol 处理客户端发送的请求。该类下有主要类用于接受处理请求。
NioEndpoint
这个类主要用户Socket连接的处理,客户端发送的请求均是通过Socket请求来处理的。
Http11Processor
将socket请求转换包装成Requet,Response,待容器处理完请求后再返回。
CoyteAdapter
将包装好的Request Response 转交给容器处理,最终会调用我们的Servlet。 Pipeline->valve
Connector 调用流程图:
CoyteAdapter开始逐个调用Container,Container是由管道的概念来逐个调用处理请求,最终调用用户的Servlet。
参考:
http://tomcat.apache.org/tomcat-9.0-doc/architecture/requestProcess/request-process.png