Tomcat深入学习与理解(一)Tomcat系统架构与原理分析
说明:本次讲述涉及使用Tomcat版本为8.5.50
1. 简介
Tomcat服务器是一个免费的开放源码的Web应用服务器,目前是应用比较广泛的。
从Tomcat的7.0版本开始支持Servlet3.0规范规范,可以支持我们开发过程中不再配置web.xml。
2. 浏览器访问服务器的流程
浏览器访问服务器使用的是http协议,http是应用层协议,用于定义数据通信的格式,具体的数据传输使用的是TCP/IP协议。
- 用户向浏览器发起http请求。
- 浏览器接收到用户请求,向服务器发起TCP连接请求。
- 服务器接收到浏览器请求,并建立TCP连接。
- 浏览器生成HTTP数据包,向服务器发送数据包。
- 服务器收到浏览器发送过来的数据包必能解析,执行请求对应的具体逻辑,将返回数据组装成http格式包并返回。
- 浏览器接收到服务器返回的http的数据包,解析http数据包,通过浏览器将相应静态资源呈现给用户。
3. Tomcat主体架构
3.1 Tomcat请求处理大致流程
Tomcat是一个http服务器,它能够接收并处理http请求。用户在发起http请求之后,http服务器接收到用户请求然后它会调用具体的程序(Java对象)进行处理,往往不同的请求由不同的Java对象处理。
Tomcat两个身份:
- HTTP服务器
- Servlet容器
Tomcat接收到http请求之后并不会让http服务器直接调用具体的java类去执行处理逻辑(这样会高度耦合),而是http服务器会把请求进行一些特殊处理后交给Servlet容器处理,Servlet容器会根据请求的不同将它们交给对应的业务类处理(这些业务类实现了Servlet接口,相当于是一个Servlet,由Servlet容器管理)。
3.2 Tomcat Servlet容器处理流程
当用户请求某个URL资源时
- http服务器会把请求信息使用ServletRequest对象封