参考:Tomcat架构解析
后面会对这些进行排版,整理,总结,修改等。
Tomcat服务器Server两大组件Container和Connector
前面已经介绍了Container(容器)
Connector设计
要想与container配合实现一个完整的服务器功能,Connector至少要完成下面几项功能。
监听服务器端口,读取来自客户端的请求。
将请求数据按照指定协议进行解析。
根据请求地址匹配正确的容器进行处理。
将响应返回客户端。
只有这样才能保证将接收到的客户端请求交由与请求地址匹配的容器处理。
tomcat支持多协议,默认支持HTTP和AJP。同时,Tomcat还支持多种I/O方式。包括BIO(阻塞io),NIO,APR。
tomcat8之后新增NIO2和HTTP/2协议的支持。
tomcat对协议和I/O抽象的建模设计方案如图所示
在Tomcat中,ProtocolHandler表示一个协议处理器,针对不同协议和I/O方式,提供不同的实现,如Http11NioProtocol表示基于NIO的HTTP协议处理器。
ProtocolHandler包含一个Endpoint用于启动Socker监听,该接口按照I/O方式进行分类实现,