
tomcat源码分析
文章平均质量分 92
码炫课堂-码哥
一名有10余年经验的互联网老兵,历经从传统软件公司到大型互联网公司的洗礼,早年在中兴通讯等大型通信公司担任项目leader,后随着互联网的崛起,先后在前美团支付等大型互联网公司担任架构师。对互联网架构底层技术有相当的研究和独特的见解,在多个领域有着丰富的实战经验。
展开
-
Tomcat源码分析 (十)----- 彻底理解 Session机制
学习必须往深处挖,挖的越深,基础越扎实!阶段1、深入多线程阶段2、深入多线程设计模式阶段3、深入juc源码解析阶段4、深入jdk其余源码解析阶段5、深入jvm源码解析码哥源码部分码哥讲源码-原理源码篇【2024年最新大厂关于线程池使用的场景题】码哥讲源码【炸雷啦!炸雷啦!黄光头他终于跑路啦!】码哥讲源码-【jvm课程前置知识及c/c++调试环境搭建】码哥讲源码-原理源码篇【揭秘join方法的唤醒本质上决定于jvm的底层析构函数】码哥源码-原理源码篇【Doug Lea为什么要将成员变量原创 2024-04-25 09:21:54 · 1354 阅读 · 0 评论 -
Tomcat源码分析 (九)----- HTTP请求处理过程(二)
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!我们接着上一篇文章的容器处理来讲,当postParseRequest方法返回true时,则由容器继续处理,在service方法中有。原创 2024-04-25 09:19:41 · 960 阅读 · 0 评论 -
Tomcat源码分析 (八)----- HTTP请求处理过程(一)
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!终于进行到Connector的分析阶段了,这也是Tomcat里面最复杂的一块功能了。Connector中文名为连接器,既然是连接器,它肯定会连接某些东西,连接些什么呢?Connector用于接受请求并将请求封装成Request和Response,然后交给Container进行处理,Container。原创 2024-04-25 09:14:15 · 713 阅读 · 0 评论 -
Tomcat源码分析 (七)----- Tomcat 启动过程(二)
至此,整个启动过程便告一段落。整个启动过程程,由parent组件控制child组件的启动,一层层往下传递,直到最后全部启动完成。原创 2024-04-25 09:11:29 · 1037 阅读 · 0 评论 -
Tomcat源码分析 (六)----- Tomcat 启动过程(一)
至此,整个初始化过程便告一段落。整个初始化过程,由parent组件控制child组件的初始化,一层层往下传递,直到最后全部初始化OK。下图描述了整体的传递流程默认情况下,Server只有一个Service组件,Service组件先后对Engine、Connector进行初始化。而Engine组件并不会在初始化阶段对子容器进行初始化,Host、Context、Wrapper容器的初始化是在start阶段完成的。原创 2024-04-25 09:08:30 · 816 阅读 · 0 评论 -
Tomcat源码分析 (五)----- Tomcat 类加载器
Java虚拟机把描述类的数据从Class文件加载进内存,并对数据进行校验,转换解析和初始化,最终形成可以呗虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这动作的代码模块成为“类加载器”。从Java虚拟机的角度来说,只存在两种不同类加载器:一种是启动类加载器(Bootstrap ClassLoader)原创 2024-04-25 09:06:40 · 1198 阅读 · 0 评论 -
Tomcat源码分析 (四)----- Pipeline和Valve
模板方法模式,父类定义框架,子类实现责任链模式,就是这儿的管道/阀门的实现方式,每个阀门维护一个next属性指向下一个阀门。原创 2024-04-24 17:52:18 · 408 阅读 · 0 评论 -
Tomcat源码分析 (三)----- 生命周期机制 Lifecycle
Lifecycle,其实就是一个状态机,对组件的由生到死状态的管理。当组件在STARTING或STARTED时,调用start()方法没有任何效果当组件在NEW状态时,调用start()方法会导致init()方法被立刻执行,随后start()方法被执行当组件在STOPPING或STOPPED时,调用stop()方法没有任何效果当一个组件在NEW状态时,调用stop()方法会将组件状态变更为STOPPED,比较典型的场景就是组件启动失败,其子组件还没有启动。原创 2024-04-24 17:50:41 · 740 阅读 · 0 评论 -
Tomcat源码分析 (二)----- Tomcat整体架构及组件
Tomcat的前身为Catalina,而Catalina又是一个轻量级的Servlet容器。在美国,catalina是一个很美的小岛。所以Tomcat作者的寓意可能是想把Tomcat设计成一个优雅美丽且轻量级的web服务器。Tomcat从4.x版本开始除了作为支持Servlet的容器外,额外加入了很多的功能,比如:jsp、el、naming等等,所以说Tomcat不仅仅是Catalina。既然Tomcat首先是一个Servlet容器,我们应该更多的关心Servlet。那么,什么是Servlet呢?原创 2024-04-24 17:49:17 · 859 阅读 · 0 评论 -
Tomcat源码分析 (一)----- 手写一个web服务器
http是一种协议(超文本传输协议),允许web服务器和浏览器通过Internet来发送和接受数据,是一种请求/响应协议。http底层使用TCP来进行通信。目前,http已经迭代到了2.x版本,从最初的0.9、1.0、1.1到现在的2.x,每个迭代都加了很多功能。在http中,始终都是客户端发起一个请求,服务器接受到请求之后,然后处理逻辑,处理完成之后再发送响应数据,客户端收到响应数据,然后请求结束。在这个过程中,客户端和服务器都可以对建立的连接进行中断操作。比如可以通过浏览器的停止按钮。原创 2024-04-24 17:46:35 · 793 阅读 · 0 评论