文章目录
Tomcat简介
web服务器软件:接收用户的请求,处理请求做出响应。可以部署web项目,让用户通过浏览器来访问这些项目。
Tomcat是一个轻量级的免费的开放源代码的web应用服务器,普遍适用于中小型系统和并发访问用户不是很多的场合,是开发和调试jsp的首选。
Tomcat整体架构
HTTP协议
主要规定了客户端和服务器之间的通信格式。
Tomcat响应过程
即:HTTP服务器请求处理与Servlet容器工作流程
为了解耦,HTTP服务器接收到请求后不会直接调用业务类(java代码),会将该请求直接发给Servlet容器,Servlet容器再决定调用哪个业务类。HTTP服务器会将客户的请求信息封装在一个ServletRequest对象中,发送给Servlet容器,Servlet容器拿到请求后找到相应的Servlet,如果Servlet还没有被加载,就创建这个Servlet,并调用init方法初始化,然后调用service方法来处理请求,最后将ServletResponse对象返回给HTTP服务器,HTTP服务器会把响应发送给客户端。
Tomcat两个核心功能的实现
两个核心功能
- 处理Socket(端口号)连接,负责网络字节流与 Request和 Response对象的转化。
- 加载和管理Servlet,以及具体处理 Request请求。
两个核心组件
1.连接器(Connector):负责对外交流
2.容器(Container):负责内部处理
Coyote和Catelina
- Coyote是Tomcat的连接器框架的名称,负责具体协议的解析以及IO的相关操作。
- Catalina是Servlet容器实现,负责具体的逻辑执行,是Tomcat的核心。
注:
- 一个容器可以对接多个连接器
- 只有将Coyote和Catalina组合起来才可对外提供服务,在Tomcat架构中一个Service就可单独对外提供服务,一个Service其中至少含有一个Coyote和Catalina,Server下面有多个Service。
Catalina组件:
Tomcat的模块分层
源码中体现的分层
抽象分层
参考b站java进阶教程Tomcat核心原理解析(https://www.bilibili.com/video/BV1dJ411N7Um?p=10)