http/2的发展和使用

http/2的发展和使用

背景

2012年时谷歌推出了spdy/2协议,这个协议就是http/2发展的前身。2015年9月nginx开始正式推出了http/2替换spdy(nginx 1.9.5). http/2是从http/1.x开始最大版本的更新,国内貌似还没有将http2作为主流,依然使用这http/1.1。这个背后肯定是有着底层原因。对比http1.1,它一样也有优势和劣势。

介绍

http/2的新功能有哪些?
1.多路复用
2.头部压缩
3.原生二进制
4.优先级传输机制

多路复用

在这里插入图片描述

将同一个host的请求合并在一个TCP连接中,这样就不用为多个请求建立连接,因为请求和响应都在一个连接中,所以这样就需要区分请求和响应的对应,http/2的实现中,采用为每个请求带上标识信息和数据大小,这样服务端才能区分请求。多路复用好处肯定很明显,减少连接的建立,建立连接就要握手,而握手是很耗费性能的,现在大部分的客户端和服务器都只支持在TLS上的http/2,因为TLS的连接建立会麻烦点,https中需要2次RTT的时间,而http/2中在TLS上扩展了APLN协议,减少了握手次数,只需要一次RTT时间,对于明文传输的情况,握手还是一样,所以在http/2没有节省多少时间,但是多路复用也有劣势,因为需要标识信息,所以多了额外的数据传输,如果只有一条数据流的情况,多路复用就没有很大的优势。

头部压缩

http/2支持将头部数据压缩,这看起来节省了数据量传输,但是这只在cookie很大的情况才真的有用,因为压缩意味着需要解压,这给服务器也带来了内存和计算的压力,内存压力在于头部压缩是有状态的,需要存储一些解压和压缩的信息。

优先级机制

这个机制解决了多路复用中哪个响应对应哪个请求的问题

什么时候使用它

在这里插入图片描述

从上面的测试结果来看,对于低延迟的环境和开启了keep-alive的情况下,是不需要升级到http/2的。
HTTP/2需要ALPN Application‑Layer Protocol Negotiation 扩展,该扩展只在OpenSSL 1.0.2被支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值