Tomcat7.0.42源码研读之网络框架Coyote(六)

本文解析了Tomcat中的Coyote组件如何处理HTTP/2协议,包括其核心组件如Endpoint、Processor和ProtocolHandler的作用,以及HTTP/2相较于HTTP/1.1的主要改进。


        Tomcat的最重要的两大组件就是网络框架Coyote和Servlet容器Catalina,前者封装了底层的网络通信(Socket请求及响应),后者负责处理具体的业务。


        


         Connector中介绍几个核心概念:

        

名词描述
EndpointCoyote通信端点,通信监听Socket的接口,是对传输层的抽象。抽象类为AbstractEndpoint
ProcessorCoyote协议处理接口,负责构造Request和Response对象,并通过CoyoteAdapter将其交由Catalina容器处理,是对应用层的抽象。
ProtocolHandlerCoyote协议接口,通过封装Endpoint和Processor,实现针对具体协议的处理。
UpgradeProtocolHTTP升级协议,用于处理HTTP/2
  
  

      Connector处理请求如下图:

       


               Tomcat自8.5版本开始支持HTTP/2,相对于HTTP/1.1的改进有:

               1、采用二进制格式传输数据而非HTTP/1.1的文本格式

               2、HTTP/2对消息头采用了HPACK压缩,提升了传输效率

               3、基于帧和流的多路复用,真正实现了一个TCP连接多请求并发处理

               4、支持服务器主动推送


              HTTP/2与HTTP/1.1形象的比对图如下:

              


            想要详细了解HTTP/2协议的,请查看https://en.wikipedia.org/wiki/HTTP/2

            Tomcat想要配置使用HTTP/2协议的:

            


     

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值