来自鹅厂大神级架构师把Tomcat内核设计解析完了

113 阅读5分钟

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。 诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。

本文深入剖析TomcatWeb服务器运行机制,共分为22章。本书从Web服务器相关的基础知识及原理开始逐渐深入Tomcat内部设计,比如涵盖了HTTP协议、Socket 通信及服务器模型等必备的基础知识。另外还包括Servlet 规范,这些都是深入Tomcat必不可少的知识。

然后介绍了Tomcat的启动与关闭过程,接着从整体预览Tomcat 的内部结构,让读者对Tomcat 内部有个整体的了解。最后开始层层剖析Tomcat内部结构,包括Server组件,Service组件,内存泄漏检测,Connector组件(HTTP 协议、AJP 协议、BIO 模式、NIO模式和APR模式),Engine 容器,Host 容器,Context 容器,.Wrapper 容器(Servlet 种类机制、Comet 模式、WebSocket 协议、异步Servlet),生命周期管理,日志框架及其国际化(日志系统、日志国际化及访问日志),公共与隔离的加载器(多个Web应用如何做到资源隔离),Mapper 组件(局部路由、全局路由),Tomeat 集成JNDI, JSP 编译器(JSP语法解析、JSP编译成Servlet、 Servlet 编译成Class),运行及通信的安全管理,处理请求和响 应的管道(管道机制),多样化的会话管理器(标准会话管理器、持久化会话管理器、集群增量会话管理器及集群备份管理器),高可用的Tomcat集群的实现( 从单机到集群)+XXX_WWW666666获取Tomcat 集群通信框架,Tomcat内部监控与管理。

第1章Web服务器机制

  • 1.1通信协议

  • 1.2套接字通信

  • 1.3服务器模型

第2章Servlet规范

  • 2.1 Servlet接口

  • 2.2 ServletRequest接口

  • 2.3 ServletContext接口

  • 2.4 ServletResponse接口

  • 2.5 Filter接口

  • 2.6会话

  • 2.7注解

  • 2.8可插拔性

  • 2.9请求分发器

  • 2.10 Web应用

  • 2.11 Servlet映射

  • 2.12部署描述文件

第3章Tomcat的启动与关闭

  • 3.1 Tomcat的批处理

  • 3.2 Tomcat中的变量及属性

第4章从整体预览Tomcat

  • 4.1 整体结构及组件介绍

  • 4.2请求处理的整体过程

第5章Server组件与Service组件

  • 5.1 Server组件

  • 5.2 Service组件

第6章Connector组件

  • 6.1 HTTP阻塞模式协议一Http11Protocol

  • 6.2 HTTP非阻塞模式协议一Http11NioProtocol

  • 6.3 HTTPAPR模式协议一Http11AprProtocol

  • 6.4 AJPConnector

  • 6.5 HTTP三种模式的Connector

  • 6.6 AJP三种模式的Connector

第7章Engine容器

  • 8.1 Web应用一Context

  • 8.2访问日志一AccessLog

  • 8.3管道一 Pipeline

  • 8.4 Host集群-Cluster

  • 8.5 Host域一Realm

  • 8.6生命周期监听器HostConfig

第8章Host容器

第9章Context容器

  • 9.1 Context容器的配置文件

  • 9.2包装器Wrapper

  • 9.3 Context域一- Realm

  • 9.4访问日志一Accesslog

  • 9.5错误页面一ErrorPage

  • 9.6会话管理器Manager

  • 9.7目录上下文一-DirContext

  • 9.8安全认证

  • 9.9 Jar扫描器JarScanner

  • 9.10过滤器

  • 9.11命名资源一NamingResource

  • 9.12 Servlet映射器一-Mapper

  • 9.13管道一Pipeline

  • 9.14 Web应用载入器-WebappLoader

  • 9.15 ServletContext的实现一ApplicationContext

  • 9.16实例管理器InstanceManager

  • 9.17 ServletContainerInitializer初始化器

  • 9.18 Context容器的监听器

第10章Wrapper容器

  • 10.1 Senrlet工作机制

  • 10.2 Servlet对象池

  • 10.3过滤器链

  • 10.4 Serlet种类

  • 10.5 Comet模式的支持

  • 10.6Weboce协议的支持

  • 10.7异步Servlet

  • 第11章生命周期管理

  • 11.1生命周期统一接口一 -Lifecycle

  • 11.2生命周期的状态转化

  • 11.3生命周期事件监听机制

第12章日志框架及其国际化

  • 12.1系统内日志

  • 12.2日志的国际化

  • 12.3客户端访问日志

第13章公共与隔离的类加载器

  • 13.1类加载器

  • 13.2自定义类加载器

  • 13.3 Tomcat中的类加载器

  • 13.4类加载器工厂一ClassLoaderFactory

  • 13.5遭遇CassNotFoundExcepion

第14章请求URI映射器Mapper

  • 14.1请求的映射模型

  • 14.2 Mapper的实现

  • 14.3局部路由Mapper

  • 14.4全局路由Mapper

第15章Tomcat的INDI

  • 15.1 JNDI简介

  • 15.2 JNDI运行机制

  • 15.3在Tomcat中集成JNDI

  • 15.4在Tomcat中使用JNDI

  • 15.5 Tomcat的标准资源

第16章JSP编译器Jasper

  • 16.1从JSP到Servlet

  • 16.2从Servlet到Class字节码

第17章运行、通信及访问的安全管理

  • 17.1运行安全管理

  • 17.2安全的通信

  • 17.3客户端访问认证机制

第18章处理请求和响应的管道

  • 18.1 管道模式一管道 与阀门

  • 18.2 Tomcat中的管道

  • 18.3 Tomcat中的定制阀门

第19章多样化的会话管理器

  • 19.1 Web容器的会话机制

  • 19.2标准会话对象一StandardSession

  • 19.3增量会话对象一DeltaSession

  • 19.4标准会话管理器StandardManager

  • 19.5持久化会话管理器PersistentManager

  • 19.6集群增量会话管理器-DeltaManager

  • 19.7集群备份会话管理器BackupManager

  • 19.8 Tomcat会话管理器的集成

第20章高可用的集群实现

  • 20.1从单机到集群的会话管理

  • 20.2 Cluster组件

  • 20.3 Tomcat的Cluster工作机制

  • 20.4 Tomcat中Cluster的级别

  • 20.5如何让Tomcat实现集群功能

第21章集群通信框架

  • 21.1 Tribes简介

  • 21.2集群成员维护服务- MembershipService

  • 21.3平行的消息发送通道一-ChannelSender

  • 21.4消息接收通道一ChannelReceiver

  • 21.5通道拦截器Channellnterceptor

  • 21.6应用层处理入口一MembershipListener与ChannelListener

  • 21.7如何使用Tribes进行数据传输

  • 21.8 Tomcat使用Tribes同步会话

  • 21.9 Tomcat使用Tribes部署集群应用

第22章监控与管理

  • 22.1 Java管理扩展一JMX

  • 22.2 JMX管理下的Tomcat

  • 22.3 ManagerServlet

书签目录