Web协议详解与抓包实战之HTTP/2【三】

本文深入探讨了HTTP/2协议,包括其主要特性如二进制传输、HPACK头部压缩和多路复用。通过WireShark工具解析了TLS-SSL报文,讲解了h2c和h2升级过程,以及帧、消息、流的关系。还介绍了服务器端消息推送、流状态变迁和流量控制策略。HTTP/2旨在解决HTTP/1.1的性能问题,但同时也面临TCP队头阻塞等挑战,预示着HTTP/3 QUIC协议的出现。
摘要由CSDN通过智能技术生成

Web协议详解与抓包实战之HTTP/2【三】

前言

《Web协议详解与抓包实战》课程学习,陶辉老师主讲

学习内容:

  1. HTTP–TLS/SSL–TCP/IP自上而下根据应用学习web协议HTTP/2详细知识
  2. 结合抓包工具实践验证:chrome下的network面板、Tcpdump、Wireshark

HTTP/2的概念和特性

HTTP/2(超文本传输协议第2版,最初命名为HTTP 2.0),简称为h2(基于TLS/1.2或以上版本的加密连接)或h2c(非加密连接)[1],是HTTP协议的的第二个主要版本,使用于万维网

HTTP/2标准于2015年5月以RFC 7540正式发表。

HTTP/2 协议本身未要求必须使用加密,但是多数客户端 (例如 Firefox, Chrome, Safari, Opera, IE, Edge) 的开发者声明,他们只会实现通过TLS加密的HTTP/2协议,这使得经TLS加密的HTTP/2(即h2)成为了事实上的强制标准,而h2c事实上被主流浏览器废弃。

主要特性

  • 传输数据量的大幅减少
    • 二进制方式传输
    • 标头压缩:HPACK算法
  • 多路复用及相关功能
    • 消息优先级
  • 服务器消息推送
    • 并行推送

http2.0并没有改变http1.x的语义,只是把原来http1.x的header和body部分用frame重新封装了一层而已

image-20201216151044692

使用WireShark解密TLS-SSL报文

  • wireshark获取TLS握手阶段生成的密钥

image-20201125162753581

  • wireshark从TLS中解密出来的HTTP/2的报文

image-20201125162946231

h2c:在TCP上从HTTP1.1升级到HTTP/2

h2c与HTTP1.1协商握手升级到WebSocket非常相似

image-20201125170911963

第一步:协商返回101 Switching Protocols

image-20201125171314318

第二步:客户端发动Magic帧

image-20201125171119206

image-20201125171657939

统一的连接过程:h2与h2c统一

image-20201125171600941

h2:在TLS上从HTTP1.1升级到HTTP/2

  • ALPN扩展协商协议

image-20201125172619078

升级过程

  • Clinet Hello包
    • 在alpn扩展中罗列出所支持的协议

image-20201125172449821

  • Server Hello包
    • 服务端选择h2协议,告诉客户端

image-20201125172538157

  • 然后发送Magic帧

帧、消息、流的关系

HTTP/2核心概念

image-20201125173452038

Stream、Message、Frame之间的关系

  • Stream与Frame之间通过stream ID对应起来

image-20201125174214062

  • Message的组成:HEADERS Frame与 DATA Frame组成

image-20201125174349950

多路复用

  • <
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值