Connector 组件的主要任务:
- 监听端口,创建服务端与客户端的连接;
- 获取客户端请求的Socket数据,并对Socket数据进行解析和包装成Http请求数据格式;
- 将包装后的数据交给Container处理。
Connector有两个属性:protocolHandler
(协议处理器)和adapter
(适配器),其中protocolHandler
完成步骤(1)(2),adapter
完成步骤(3)。
三种不带Ajp的协议,客户端与Tomcat服务器直接连接:
- Http11NioProtocol———-默认方式,NIO方式的支持http1.1协议
- Http11Nio2Protocol———-NIO2方式的支持http1.1协议
- Http11AprProtocol———-使用ARP技术的支持http1.1协议(ARP:Apache portable runtime)
三种带Ajp的协议为定向包协议,即WEB服务器通过 TCP连接和SERVLET容器连接,例如tomcat和Apache、Nginx等前端服务器连接:
- AjpNioProtocol—————NIO方式的支持Ajp协议
- AjpNio2Protocol—————NIO2方式的支持Ajp协议
- AjpAprProtocol—————使用ARP技术的支持Ajp协议
Connector配置
|
|
Connector初始化
Connector启动
感谢:
阿里技术专家,楚岩:Tomcat源码分析系列博客