Tomcat 整体架构与核心接口

本文详细介绍了Tomcat的整体架构,包括Server、Service、Connector和Container的层级关系。深入探讨了核心接口Lifecycle、Server、Connector、Container及Pipeline的作用。同时,概述了Tomcat的初始化、启动流程以及HTTP请求的处理步骤,帮助理解Tomcat内部工作原理。
摘要由CSDN通过智能技术生成

一、整体架构

1. Server:表示整个tomcat 容器(服务器)

2. Service:将一个或多个 connector 和一个engine(顶层Container) 绑定,Server 子容器。

3. Connector:负责与客户端的通信,常用的有 Http Connector 负责与客户端的 http 通信。

4. Container:是一个接口,Engine  > Host > Context  > Wrapper 都是具体的容器。

二、容器

Engine  > Host > Context  > Wrapper

1. Engine: service 处理请求的管道,从connector 接收请求,处理后,将响应再发给对应的 connector 。conector 再返回给客户端。代表整个servlet 引擎;

2. Host:代表引擎中的虚拟主机(可以有多个),Engine的子容器。

3. Context:Servlet Context,通常代表一个web应用,父容器是 Host,一个 Host 可以有多个context,每个context 用一个单独的路径区分。

4. Wrapper: 管理 Servlet 生命周期, 方便在调用servlet 时做相关的拦截过滤操作,不允许有子容器。所有的容器都有 pipeLine

三、核心接口

1. Lifecycle 接口

Connector    Container(Engine>Host(war包web.xml)>Context<(server.xml)>Wrapper)     

Service(StandardService)

2. Server 接口

3. Connector 接口

protocalHandler (Http11NioProtocol)

Endpoint (NioEndpoint)

4. Container 接口

5. Pipeline 接口

所有的 Container 都有一个 Pipeline 属性, pipeline 定义了container 调用 invoke 方法时要执行的一个集合序列,并且序列中的最后一个需要做出 response。

三、初始化、启动流程

弄清了整体架构和核心接口后,初始化和启动流程也是按照类/接口的组合关系进行的。

四、请求处理流程

一个典型的http 请求的处理流程如下:

我们 debug 一个springboot 项目也能够看到:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

【非典型Coder】

赏个鸡腿吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值