Tomcat深入学习与理解(一)Tomcat系统架构与原理分析

本文深入探讨Tomcat 8.5.50的系统架构,包括Tomcat作为HTTP服务器和Servlet容器的角色,Coyote连接器的工作流程,以及Catalina如何处理请求。讲解了从浏览器发起请求到Tomcat响应的全过程,以及Coyote如何处理应用层协议和IO模型,如HTTP1.1和BIO、NIO、NIO2、APR。同时阐述了Catalina的内部组件和容器结构,揭示了Tomcat的灵活性和可配置性。
摘要由CSDN通过智能技术生成

Tomcat深入学习与理解(一)Tomcat系统架构与原理分析

说明:本次讲述涉及使用Tomcat版本为8.5.50

1. 简介

Tomcat服务器是一个免费的开放源码的Web应用服务器,目前是应用比较广泛的。

从Tomcat的7.0版本开始支持Servlet3.0规范规范,可以支持我们开发过程中不再配置web.xml。

2. 浏览器访问服务器的流程

浏览器访问服务器使用的是http协议,http是应用层协议,用于定义数据通信的格式,具体的数据传输使用的是TCP/IP协议。

在这里插入图片描述

  1. 用户向浏览器发起http请求。
  2. 浏览器接收到用户请求,向服务器发起TCP连接请求。
  3. 服务器接收到浏览器请求,并建立TCP连接。
  4. 浏览器生成HTTP数据包,向服务器发送数据包。
  5. 服务器收到浏览器发送过来的数据包必能解析,执行请求对应的具体逻辑,将返回数据组装成http格式包并返回。
  6. 浏览器接收到服务器返回的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资源时

  1. http服务器会把请求信息使用ServletRequest对象封
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值