
Tomcat
住手丶让我来
我是革命一块砖,哪里需要哪里搬!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Tomcat架构解析之Container设计
一、前言为了使大家能够更加深刻的理解Tomcat的相关组件的概念,将采用一种启发式的讲解方式来介绍Tomcat的总体设计。从如何设计也应用服务器开始,逐步完善,直至最终导出Tomcat的整体架构。二、Server从最基本的功能来讲,我们可以将服务器描述我这样一个应用:附:Tomcat的目录结构及主要文件如下图所示:...原创 2019-07-29 10:45:04 · 492 阅读 · 1 评论 -
Tomcat架构解析之HTTP/2.0
一、前言 自8.5版本开始,Tomcat增加了对HTTP/2.0的支持。在这篇博客中,我们将简单介绍HTTP/2.0的发展、基本知识以及其配置使用方式。二、基础知识 谈到HTTP/2.0,就不得不先说一下SPDY协议。SPDY是Google考法的用于传输Web内容的开发网络协议,可以说是HTTP/2....原创 2019-08-02 15:40:52 · 1210 阅读 · 0 评论 -
Tomcat架构解析之HTTP
一、前言 HTTP协议可以说是互联网应用最广泛的网络协议,也是所有服务器均支持的最基本的协议。他是一种基于请求与响应模式的、无状态的应用层协议。这篇博客主要介绍HTTP协议(1.1版本)的基础知识以及在Tomcat中如何配置使用。二、基础知识 HTTP协议具体有如下特点:支持客户端/服务器模式。...原创 2019-08-01 16:28:33 · 624 阅读 · 0 评论 -
Tomcat架构解析之Coyote
一、什么是Coyote? Coyote是Tomcat链接器框架的名称,是Tomcat服务器提供的供客户端访问的外部接口。客户端通过Coyote与服务器建立链接、发送请求并且接收响应。 Coyote封装了底层的网络通信(Socket请求以及响应处理),为Catalina容器提供了统一的接口,是Catali...原创 2019-08-01 16:39:27 · 5089 阅读 · 0 评论 -
Tomcat架构解析之AJP
一、前言 除了HTTP,Tomcat还支持AJP协议,以便于Apache HTTP Server等Web服务器集成,这篇博客主要讲解AJP协议的基础知识以及其配置使用方式。二、基础知识 为了满足负载均衡、静态资源优化、遗留系统集成(如集成PHP Web应用)等应用部署要求,我们习惯于在Servlet容...原创 2019-08-05 10:02:59 · 3540 阅读 · 0 评论 -
Tomcat架构解析之DefaultServlet和JspServlet
一、前言 Tomcat在$ CATALINA_BASE/conf/web.xml中默认定义了两个Servlet:DefaultServlet和JspServlet,而且由于$ CATALINA_BASE/conf/web.xml为Web应用的默认部署描述文件,因此这两个Servlet会默认存在所有Web应用容器中。二、DefaultServlet...原创 2019-08-01 08:48:46 · 2033 阅读 · 0 评论 -
Tomcat架构解析之Web请求处理
一、前言 介绍网Catalina中Web应用的加载过程,这篇博客再来介绍一下他是如何处理Web应用请求的。二、总体过程 Tomcat通过org.apache.tomcat.util.http.Mapper维护请求链接与Host、Context、Wrapper等Container映射。同时,通过org....原创 2019-08-01 08:49:00 · 522 阅读 · 0 评论 -
Tomcat架构解析之Context命名规则
一、前言 在"Web应用加载"的最后,讲解一下Context命名规则。尽管在大多数情况下,Context的名称与部署目录或者WAR包名称(去除扩展名,下文称为“基础文件名称”)相同,但是Tomcat支持的命名规则要复杂的多。在部署较简单的情况下,我们基本可以忽略Tomcat对Context命名规则的处理,但是在复杂部署的情况下,这可能会给我们的应用部...原创 2019-08-01 08:49:26 · 715 阅读 · 0 评论 -
Tomcat架构解析之Web应用加载(下篇)
四、StandardContext 对于StandardHost和HostConfig来说,知识根据不同情况(部署描述文件、部署目录、WAR包)创建并且启动Context对象,并不包含具体的Web应用初始化以及启动工作,该部分工作由组件Context完成。先给出Web容器相关的静态结构如下图所示: ...原创 2019-08-01 08:49:37 · 296 阅读 · 0 评论 -
Tomcat之Servlet容器和Catalina结构图
一、前言恰巧发现一本猛书《How tomcat works》 。此书的特点是,以一个程序示例贯穿全书,该示例从最简单的http server开始,根据Tomcat的组成结构,一章一章长大,逐步羽翼丰满,最终变成一个强大的Servlet容器。因此,如果把全书读下来,对Tomcat的组成结构和运行机理,乃至设计原理,应该会有一个不错的了解。二、Servlet 容器是如何工作的Servlet容器是...原创 2019-07-26 10:33:23 · 808 阅读 · 0 评论 -
Tomcat架构解析之Web应用加载(上篇)
一、Web应用的加载过程 Web应用加载属于Server启动的核心处理过程。Catalina对Web应用的加载主要有StandardHost、HostConfig、StandardContext、ContextCOnfig、StandardWrapper这5个类完成的。以一张时序图来展示Catalina对Web应用的加载过程如下所示:二、Sta...原创 2019-08-01 08:49:11 · 337 阅读 · 0 评论 -
Tomcat架构解析之Digester
一、什么是Catalina? Catalina包含了前面讲到的所有的容器组件,以及后面会涉及到的安全、会话、集群、部署、管理等Servlet容器架构的各个方面。他通过松耦合的方式集成Coyote,以完成按照请求协议进行数据读写。同时,他还包括我们的启动入口、Shell程序等。 如果以一个简单的模块依赖图...原创 2019-07-31 08:36:10 · 458 阅读 · 0 评论 -
Tomcat架构解析之NIO和NIO2
一、前言 传统的BIO方式是基于流行进行读写的,而且是阻塞的,整体性能比较差。为了提高I/O性能,JDK与1.4版本引入NIo,他弥补了原来BIO方式的不足,在标准的Java代码中提供了高速、面向块的I/O。通过定义包含数据的类以及块的形式处理数据,NIO可以再不编写表弟代码的气哭下利用底层优化,这是BIO无法做到的。二、NIO &nb...原创 2019-08-02 15:38:22 · 11242 阅读 · 3 评论 -
Tomcat架构解析之类加载器
一、前言 主要介绍Tomcat的类加载机制,包括Tomcat的类加载器层级设计以及Web应用的类加载过程。类加载是一切Java应用运行的基础,了解一款应用的类加载机制会便于我们掌握他的运行边界,也有助于其运行异常的快速定位。二、J2SE类加载器 JVM迷人提供了3个类加载器,他们以一种父子树的方式创建...原创 2019-07-30 11:50:02 · 378 阅读 · 0 评论 -
Tomcat架构解析之Connector设计
一、前言原创 2019-07-29 17:13:30 · 368 阅读 · 0 评论 -
Tomcat架构解析之Lifecycle、Pipeline和Valve
一、前言 在进一步深入细化应用服务设计之前,我们希望从抽象和复用层面再审视一下当前的设计成果,使得概念更加清晰,提供通用性定义用于服务器的统一管理。二、Lifecycle容易发现,所有组件均存在启动,停止等生命周期方法,拥有生命周期管理的特性。因此,我们可以基于生命周期管理进行一次接口抽象,...原创 2019-07-29 15:34:19 · 329 阅读 · 0 评论 -
Tomcat架构解析之BIO和ARP
一、前言 自Tomcat8.5版本开始,Tocat移除了对BIO的支持,这篇博客内容只适用于8.0以及之前的版本。二、BIO BIO即阻塞式I/O,是Java提供的最基本的I/O方式。在网络通信(此处主要讨论TCP/IP协议)中,需要通过Socket在客户端与服务端建立双向链接以实现通信,其主要步骤如...原创 2019-08-02 15:40:25 · 699 阅读 · 0 评论