http协议版本的区别 -- 1.1和2

目录

http协议1.1和2的区别

介绍 

数据传输格式

文本协议和二进制协议的区别

文本协议请求

二进制请求

二进制分帧层

引入

介绍

多路复用

多路复用技术

必要性

作用

流的优先级的问题

丢包问题

和IO模型中多路复用的关系 

头部压缩

HPACK 算法

静态表

动态表

霍夫曼编码

服务器推送

安全性

性能


http协议1.1和2的区别

介绍 

1.x的设计基于早期的互联网

  • 早期互联网带宽有限+信道质量差(需要让tcp协议保证数据传输的正确性)

而http/2 -- 管道化

  • 它的优化目标就是让每一个tcp连接可以被多个http会话复用 -- 减少服务端需要轮询的句柄数量,减轻服务端压力

数据传输格式

HTTP/1.1

使用纯文本格式传输数据

  • 头部信息以文本形式表示,数据部分可以是文本/二进制

HTTP/2

采用二进制分帧层

  • 将所有传输的信息分割为更小的,并以二进制格式编码
  • 这些帧按序列号发送和接收,并在接收端重新组装成完整的消息
  • 这种方式提高了数据传输的灵活性和效率

文本协议和二进制协议的区别

二者间区别在于,协议是以文本字符串为导向,还是以数据结构为导向

文本协议请求
  • 内容由文字构成
二进制请求
  • 排列会比文本协议更加紧凑
  • 不需要添加特殊字符来辅助解析一段文字
  • 数字占用空间更小:比如http中状态码200,在文本协议中, "2" "0" "0"这三个数字需要分别用编码表示 ; 但是在二进制协议中,直接用二进制11001000表示数字

二进制分帧层

引入

  • http/2中的二进制分帧层给一个tcp链接同时发送多个请求提供了可能
  • 二进制分帧层可以解决 -- 当一次发送多个请求/响应时,如何找到对应的请求和响应? 的问题
  • 为什么要解决这个问题?
  • 因为请求和响应本身拥有的字段无法一一对应

那在HTTP/1中,请求和响应为什么可以对应起来?

  • 因为在HTTP/1中,一个tcp请求只能同时完成一个请求响应过程
  • 所以请求以及响应天生一一对应,不存在响应和请求无法匹配的问题
介绍

首部信息被封装成Headers帧,主体部分被封装成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值