Tomcat 的设计者设计了 3 个组件来实现这 3 个功能,分别是 Endpoint、Processor 和 Adapter。Endpoint 负责提供字节流给 Processor,Processor 负责提供 Tomcat Request 对象给 Adapter,Adapter 负责提供 ServletRequest 对象给容器。
Endpoint 和 Processor 放在一起抽象成了 ProtocolHandler 组件。关系图如下:
负责网络通信,实现类有 NIOEndPoint、Nio2Endpoint、AprEndpoint
应用协层议处理,支持 HTTP/1.1、HTTP/2、AJP(用于和web 服务器集成)
由于存在不同的协议,Tomcat 定义了自己的 Request 类来存放请求信息,Tomcat 引入了 CoyoteAdapter 适配器,将 Tomcat Request 转为 ServletRequest。
原文:https://www.cnblogs.com/walterlee/p/13177581.html