Tomcat

1 web概念

1.1软件架构:

        C/S客户端/服务器---------------->QQ,360

        B/S:浏览器架构/服务器端----->京东,网易淘宝,天猫

1.2.资源分类:

        1.2.1静态资源: 

                           所有用户访问得到结果都一样,可以被直接浏览器解析,html css javaScript,jpg

        1.2.2 动态资源:

                          每个用户访问相同资源后,得到的结果可能不一样,需要先转换成静态资源,然后再返回浏览器进行解析;servlet/jsp,php,asp

 1.3 网络通信三要素:

          1.3.1 IP:电子设备在网络中的唯一标识

          1.3.2  端口:应用程序在计算机中的唯一标识。0~65536

           1.3.3 传输协议:规定传输规则;

                        tcp:安全协议,三次握手,速度稍慢

                        udp:不安全协议,速度快

2.常见web服务器

        

 3.tomcat下载/启动

        链接:https://pan.baidu.com/s/1LPMbDvuSDaYu_365iC183Q 
        提取码:GXQ2

 启动后网址输入127.0.0.1:8080就可以访问(检查自己是否安装jdk,cmd里输入javac查看)

4.源码下载/配置

      Tomcat源码安装到IJ教程

5.Tomcat架构

        2.1Http工作原理

                http协议是浏览器与服务器之间的数据传输协议,作为应用层协议,HTTP是基于TCP/IP协议来传输数据的(HTML文件/图片/查询结果登),HTTP协议不涉及数据包(Packet)传输,主要规定了客户端和服务器的通信格式; 

                

 Tomcat只能响应静态资源

2.2 Tomcat整体构造

        2.2.1 HTTP服务器请求处理

浏览器发给服务端的是一个HTTP格式的请求,HTTP服务器收到这个请求后,需要调用服务程序来处理,所谓的服务端程序就是你写的Java类,一般来说不同的请求需要由不同的Java类来处理

 图一缺点:直接调用业务实际类,耦合

图二:每个类实现接口Servlet接口,Serlet容器和Servlet容器这一套规范就可以称为Servlet规范

2.2.2 Servlet容器工作流程

        

 

 2.2.3Tomcat整体架构

Tomcat两个核心功能:

(1)处理Socket连接,负责网络字节流与Request和Response对象的转化

(2)加载和管理Servlet,以及具体处理Tequest请求

因此Tomcat涉及了两个核心组件连接器(Connector)和容器(Container)来分别做着两件事情。连接器负责对外交流,容器负责内部处理

 

 2.3连接器 - Coyote

        2.3.1 架构介绍

coyote:具体协议的解析,IO相关操作

catalina:具体的逻socket逻辑的处理

2.3.2 IO模型与协议

Tomcat支持的IO模型(自8.5/9.0 版本起,Tomcat移除了对BIO的支持)

 Tomcat 支持的应用层协议

 协议分层:

 一个容器对应多个连接器

coyote和Catalina都无法单独对外提供服务,他们组合起来才可以,组合起来就是service,service里面最少包含一个连接器,一个容器,(上面的图)

2.3.3 连接器组件

容器(catalina)

 各个组件作用:

 

 

 

 2.4 容器 - catalina

        

 2.4.1 catalina

Tomcat模块分层图:

 包结构和这个图基本相同

 

 2.4.2 结构

 server:整个服务器

Service:一个服务(连接器和容器)

一个容器对应多个服务器

 

 2.4.3 Catalina 结构

 

 Engine:引擎

 组件含义:

 tomcat的配置文件conf->server.xml

 tomcat 源码查看

(双击shift 启动IJ的全局搜索,ctrl+H查看类的继承关系)

Container下的子接口或实现类

 

 

 

2.5 Tomcat 启动流程 

2.5.1 流程

 Executor:线程池

init:类似于初始化(加载配置文件)

start:启动自身和子组件

先初始化再启动

 Catalina Server Service Executor Engine Host Context Connector 这些组件中都有共同的init方法和start方法

2.5.2 源码分析

Lifecycle

 

 

 各组件默认实现

 

 

 AJP:8009端口

 

 http:8080端口

 

 

跟踪源码

IJ源码分析

debug方式运行分析tomcat启动流程

2.6 请求处理流程

        2.6.1 请求流程

 

 

 

 

 

 

 

使用meven创建项目,然后用tomcat运行;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值