http1, http2优缺点对比,以及开源项目iip

一、 http1的缺点,以及对应的http2的优化1. http1是文本协议,“文本协议”的意思是其传输的数据流(包括header和body)必须先转换为ascii码的可见字符。为什么要这样呢?因为他是以\n换行符来进行数据分隔的。如果是传输带额数据是以原本的二进制内码的形式,则会和\n产生冲突,无法解析。而采用文本形式则势必需要对原数据进行文本化编码,比如url-encode,base64,等等,无论哪种编码,都会导致数据的体积增大。http2是二进制协议,无需进行文本化编码,不会导致体积增大。
摘要由CSDN通过智能技术生成

一、 http1的缺点,以及对应的http2的优化

1. http1是文本协议,“文本协议”的意思是其传输的数据流(包括header和body)必须先转换为ascii码的可见字符。为什么要这样呢?因为他是以\n换行符来进行数据分隔的。如果是传输带额数据是以原本的二进制内码的形式,则会和\n产生冲突,无法解析。而采用文本形式则势必需要对原数据进行文本化编码,比如url-encode,base64,等等,无论哪种编码,都会导致数据的体积增大。

http2是二进制协议,无需进行文本化编码,不会导致体积增大。

2. http1虽然支持body压缩,但不支持头部压缩(支持不了,本质上还是因为\n问题),而每一次“请求/响应”都必须有头部,这些头部有时候是不必要的(特别是像cookie和user-agent这种又臭又长又重复的头部字段),增大了数据体积。

http2只有在第一次请求的时候通过http1的头部字段upgrade来请求升级到http2协议,后续的请求响应全部以http2的二进制格式的帧进行传输,帧的精心设计,避免了如http1那样的头部信息冗余。而对应于http1的header信息,在http2的header帧中保留了一个伪首部的区域以供承载 ,且这个伪首部可以采用HPACK高效压缩。

3. http1是“单路的”,意思是一条底层的tcp连接上同一时刻只能跑一个请求或响应。比如说,有r1,r2,r3三个请求,在同一个连接上,必须依次串行执行,先发出r1,收到完整的响应后,再发出r2。。。这样的单路模式,对于高并发的后端服务器来说,带来几个问题:

操作内核

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值