Tomcat 工作原理

512 阅读1分钟

Tomcat

为了解耦,Http服务器不直接调用Servlet,而是把请求交给Servlet容器来处理

当客户请求某个资源时,HTTF服务器会用一个servletRequest对象被客户的请求信息封装起来,然后调用servlet容器的service方法,servlet容器拿到请求后,根据请求的URL和Servlet的映射关系,找到相应的Servlet,如果Servlet还没有被加载,就用反射机制创建这个servlet,并调用servlet的init方法来完成初始化,接着调用Servlet的service方法来处理请求,把servletResponse对象返回给HTTF服务器,HTTF服务器会把响应发送给客户端。

在这里插入图片描述

1 Tomcat 整体架构

  • 连接器,处理Socket连接,负责网络字节流Request和Response对象的转化
  • 容器 加载和管理Servlet,以及具体处理Request对象的转化

在这里插入图片描述

1.1 连接器

在这里插入图片描述

  • Coyote 主要处理网络通信

    应用层:HTTP(默认) AJP HTTP2

    传输层:8.5 以后移出BIO 这种IO模型 使用NIO(默认) NIO2 APR

  • Catalina 负责进一步封装request response

一个容器可以对应多个连接器 组成Service对外提供服务

连接器组件

在这里插入图片描述

1.2 容器 - Catalina

在这里插入图片描述

在这里插入图片描述

2 Tomcat 执行流程

在这里插入图片描述