HTTP2.0相比于HTTP1.1,核心优势在哪里
HTTP,人称超文本传输协议,它是在应用层上的协议,与它对接的传输层的协议刚是TCP。为什么不用UDP呢,因为UDP是不可靠的,而TCP是可以保证请求返回的顺序的,这一点很重要。
HTTP1.1
这是一个使用了很长时间的协议,并且目前还在使用,它的前面有0.9、1.0。HTTP1.1默认是个持久连接,也就是不用频繁去创建连接,这对性能上提升是很大的,大家都知道,HTTP连接的创建是耗性能的。
以前的版本都是发一个请求,服务器回应后就会断开连接,下一个请求时会重新创建连接。显然,这种情况是必需改进的,于是有了HTTP1.1。虽然它是个长连接,但在连接中发送的多个请求还是会顺序处理。这样的话一旦有一个请求处理很久的话,那后面的请求就会被阻塞。在请求如此频繁的今天显然还是有些不太令人满意,虽然可以同时保持几个持久连接,但明显还有改进的地方。
HTTP2.0
首先,它解决了1.1的长连接会遇到阻塞的问题。它采用的是多路复用的形式去解决这个问题。什么是多路复用呢?就是一个通道可以让多条线路同时占用而不搞混。这里的作法是为每一个请求带一个编号,它样服务器方就能为请求的回应对上号了。如果一个请求时间过长,那么服务器就可以先暂停这个请求,先处理下一个请求,处理完再回来处理这个长请求,如果找回这个长请求呢,那就靠这个编号了。
除此之处,它还规定了HTTP传输的所有内容都转为二进制进行传输,以前的版本只有头部信息会转为二进制,内容体并不会。不统一总会造成额外的麻烦。比如内容是文本,而文本是有多种样式的,这样的话解析它的一方就很麻烦了,要支持你各种样式。
HTTP1.1和HTTP2.0的主要区别如下:
HTTP2.0(Hypertext Transfer Protocol Version 2)是超文本传输协议的第二版。HTTP 2.0相比于HTTP 1.x,大幅度的提升了web性能,同时向下兼容HTTP1.X协议版本。
Http2.0的核心优势有
1、采用二进制格式传输数据,而非http1.1文本格式,二进制格式在协议的解析和优化扩展上带来了跟多的优势和可能
2、对消息头采用Hpack进行压缩传输,能够节省消息头占用的网络流量,http1.1每次请求,都会携带大量冗余的头信息,浪费了很多宽带资源。
3、异步连接多路复用
4、Server Push,服务器端能够更快的把资源推送到客户端。
5、保持与HTTP 1.1语义的向后兼容性也是该版本的一个关键。