Tomcat解析

打印 上一主题 下一主题

主题 1826|帖子 1826|积分 5478

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
架构图


焦点功能

Tomcat是Apache开源的轻量级Java ServletServlet容器,其中一个Server(Tomcat实例)可以管理多个Service(服务),一个Service包含多个Connector和一个Engine,负责管理哀求到应用的整个流程。

Tomcat要实现的两个焦点功能:

  • 处理Socket毗连,负责网络字节流与Request、Response哀求的封装与拆解
  • 加载和管理Servlet,处理具体的Request哀求

因此Tomcat计划了两个焦点组件——毗连器(Connector)和容器(Container),毗连器负责接受、返回哀求,容器负责内部处理。
组件

Server

Tomcat实例,可以管理多个Service(服务)
Service

一个Service包含多个Connector和一个Engine,负责管理哀求到应用的整个流程
Connector

在一个Service中,多个Connector负责差别协议的哀求(Http,Https等)
Coyote是Tomcat毗连器框架,封装了底层的网络通信(Socket哀求及相应处理),为Catalina容器提供了同一接口,使Catalina容器与具体的哀求协议及IO利用完全解耦
Engine

Tomcat焦点处理模块,处理来自Connector的哀求,并传递到符合的Host和Context
Host

表示一个假造主机,可以在同一个 Tomcat 实例中配置多个假造主机。
Context

表示一个 Web 应用步伐,是最小的 Web 应用处理单位。
Wrapper

表示一个Servlet,Wrapper 作为容器中的最底层,不能包含子容器。
Tomcat哀求流程

  1. 客户端请求
  2.     |
  3.     V
  4. Coyote (连接器)
  5.     |-- 监听端口 (Endpoint)
  6.     |-- 解析协议 (ProtocolHandler)
  7.     |-- 转化为 Request 和 Response 对象
  8.     V
  9. Catalina (Servlet 容器)
  10.     |-- 转换为 HttpServletRequest 和 HttpServletResponse
  11.     |-- 找到目标 Servlet (通过 Engine -> Host -> Context -> Wrapper)
  12.     |-- 调用 Servlet 的 service() 方法
  13.     V
  14. 返回响应
  15.     |-- 生成响应数据
  16.     |-- 通过 Coyote 的 Processor 写入输出流
  17.     V
  18. 客户端接收响应
复制代码
  1. http://localhost:8080/app1
  2. |       |          |    |
  3. |       |          |    └── Context(路径)
  4. |       |          └── Port(端口)
  5. |       └── Host(主机)
  6. └── Connector(协议)
复制代码




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

徐锦洪

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表