Tomcat学习积累笔记---Tomcat总体架构简介

Tomcat学习积累—Tomcat总体架构

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

在这里插入图片描述

  1. 客户通过url地址访问/搜索功能向浏览器发起请求
  2. 浏览器向服务器发起TCP连接请求(三次握手操作),http请求知识定义了数据的组织模式(通信格式),是一个应用层协议,数据传输依靠TCP/IP协议
  3. 进行一个socket处理,服务器接收请求并建立连接
  4. 浏览器生成http格式的数据包
  5. 浏览器向服务器发送请求数据
  6. 服务器解析http格式的数据包
  7. 执行书包解析出来的请求
  8. 服务器生成http格式的数据包
  9. 服务器将相应的数据包 发送给 浏览器
  10. 浏览器解析http格式的数据包,将数据包的内容解析成静态数据(html/js/图片)
  11. 浏览器将静态数据呈现给客户

2.Tomcat 请求处理⼤致过程

  1. Tomcat是⼀个Http服务器(能够接收并且处理http请求,所以tomcat是⼀个http服务器)
  2. 我们使⽤浏览器向某⼀个⽹站发起请求,发出的是Http请求,那么在远程,Http服务器接收到这个请求之后,会调⽤具体的程序(Java类)进⾏处理,往往不同的请求由不同的Java类完成处理。
    在这里插入图片描述
  3. tomcat调用应该是这样的,如下图
    1. tomcat从http服务器拿到请求后并不是直接调用业务类,而是中间经过一个Servlet容器
    2. http服务器会把HTTP请求先发送给Servlet容器(里面发了很多Servlet)
    3. 写完一个 业务类还要注册进Servlet容器中(1.web.xml方式注册 2.注解方式 )
    4. 注册完之后业务类就交给 Servlet容器管理了,可以看作是一个Map集合
    5. HTTP服务器发送请求之后去Servlet容器中找那个Servlet可以解决请求,找到之后进行业务逻辑的处理
    6. 自定义业务类就要实现Servlet接口,实现完业务类就交给容器管理
    7. tomcat是实现了Servlet规范的(因为tomcat中有Servlet容器和接口),所以也可以成tomcat是一个Servlet容器
      在这里插入图片描述
  4. HTTP 服务器接收到请求之后把请求交给Servlet容器来处理,Servlet容器通过Servlet接⼝调⽤业务类(前提是业务类要注册进Servlet容器中)Servlet接⼝Servlet容器这⼀整套内容叫作Servlet规范
  5. 注意Tomcat既按照Servlet规范的要求去实现了Servlet容器,同时它也具有HTTP服务器的功能。
  6. Tomcat的两个重要身份
    1. http服务器:能够接收并且处理http请求,有这个功能和使命,所以tomcat是⼀个http服务器
    2. Tomcat是⼀个Servlet容器:因为tomcat实现了Servlet规范

3.Tomcat中Servlet容器处理请求流程

当⽤户请求某个URL资源时
  1. HTTP服务器会把请求信息(request对象)使⽤ServletRequest对象封装起来
  2. 进⼀步去调⽤Servlet容器中某个具体的Servlet
  3. 2中,Servlet容器拿到请求后,根据URLServlet的映射关系,找到相应的Servlet
  4. 如果Servlet还没有被加载,就⽤反射机制创建这个Servlet,并调⽤Servlet的init⽅法来完成初始化
  5. 接着调⽤这个具体Servlet的service⽅法来处理请求,请求处理结果使⽤ServletResponse对象封装
  6. ServletResponse对象返回给HTTP服务器HTTP服务器会把响应发送给客户端,转换成原生的Response对象
  7. 组中原生的Response对象要返回给浏览器进行渲染
    在这里插入图片描述
    在这里插入图片描述

4.Tomcat总体架构综述

我们发现tomcat有两个⾮常重要的功能需要完成
  1. 和客户端浏览器进⾏交互,进⾏socket通信(指的是TCP/IP传输... ),将字节流和Request/Response等对象进⾏转换
  2. Servlet容器处理业务逻辑
  3. tomcat中设计了两个组件完成上述的两个核心功能
    1. 连接器,负责对外交流: 处理Socket连接,负责⽹络字节流与Request和Response对象的转化;
    2. 容器,负责内部处理:加载和管理Servlet,以及具体处理Request请求;
      在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值