h2 支持mysql协议吗_HTTP协议探究(五):H2中一些重要的概念

一 复习与目标

1 复习

简单密码学、对称加密与非对称加密

数字签名、数字证书

SSL/TLS

HTTPS = HTTP + SSL/TLS,SSL/TLS为HTTP提供了保密性、完整性和鉴别性

2 目标

HTTP1.1的问题

HTTP2.0设计关键

HTTP2.0的详情

注1:本文并不会讲解h2的所有内容,只会包含重要(主观)的内容。

注2:下一篇再讲解具体每个报文类型并进行报文分析。

二 HTTP1.1的问题

(1)HTTP管线化的问题

简单说就是在等待上一个请求响应的同时,发送下一个请求。

多个HTTP请求放到一个TCP连接中一一发送,而在发送过程中不需要等待服务器对前一个请求的响应;但是客户端要按照发送请求的顺序来接收响应。

队首阻塞(Head-of-line blocking):如果前一个请求很慢,就会导致后续的请求都受到影响。

队首阻塞的存在,导致浏览器一般禁用该功能,服务器也应该禁用掉。

(2)多个TCP连接(6个)

由于现在一个网站的请求变多,文件变大,所以HTTP1.1为了提升下载速度,将支持最大6个TCP(Chrome)连接进行HTTP请求。

管理一个TCP连接是非常消耗客户端和浏览器的资源,所以需要优化。

(3)分片(多域名)

网站的资源进行划分多域名,这样可以摆脱客户端对一个域名最大只能打开6个TCP连接的限制。

缺点是多个DNS解析的消耗和更多TCP连接的管理

(4)首部太大

HTTP1.1每次请求都会带上完整的首部

三 HTTP2设计关键

降低协议对延迟的敏感

修复pipelining和head of line blocking的问题

并行操作无需与服务器建立多个连接,从而改进 TCP 的利用率,特别是拥塞控制方面;

保持 HTTP 1.1 的语义,利用现有文档,包括(但不限于)HTTP 方法、状态码、URI,以及首部字段

明确指出所有新的可扩展机制以及适当的扩展策略。

四 HTTP2协议

(1)二进制分帧层

b26ae0aa9ec729d0451d8a4ae605a7d4.png

分帧层位于套接字接口与应用可见的高层HTTP API 之间的一个新机制:HTTP 的语义,包括各种动词、方法、首部,都不受影响,不同的是传输期间对它们的编码方式变了。

HTTP 1.x 以换行符作为纯文本的分隔符,而HTTP2.0 将所有传输的信息分割为更小的消息和帧,并对它们采用二进制格式的编码。

(2)流、消息和帧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值