HTTP1.1与HTTP2.0的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mottohlm/article/details/81023256

HTTP协议

    HTTP,人称超文本传输协议,它是在应用层上的协议,与它对接的传输层的协议刚是TCP。为什么不用UDP呢,因为UDP是不可靠的,而TCP是可以保证请求返回的顺序的,这一点很重要。
现在互联网上用到的基本都是HTTP协议。协议嘛,它就是一种规则,具体什么规则在这里我就不介绍了,主要讨论一下它有什么特点。

HTTP1.1

    这是一个使用了很长时间的协议,并且目前还在使用,它的前面有0.9、1.0。HTTP1.1默认是个持久连接,也就是不用频繁去创建连接,这对性能上提升是很大的,大家都知道,HTTP连接的创建是耗性能的。以前的版本都是发一个请求,服务器回应后就会断开连接,下一个请求时会重新创建连接。显然,这种情况是必需改进的,于是有了HTTP1.1。虽然它是个长连接,但在连接中发送的多个请求还是会顺序处理。这样的话一旦有一个请求处理很久的话,那后面的请求就会被阻塞。在请求如此频繁的今天显然还是有些不太令人满意,虽然可以同时保持几个持久连接,但明显还有改进的地方。

HTTP2.0

    首先,它解决了1.1的长连接会遇到阻塞的问题。它采用的是多路复用的形式去解决这个问题。什么是多路复用呢?就是一个通道可以让多条线路同时占用而不搞混。这里的作法是为每一个请求带一个编号,它样服务器方就能为请求的回应对上号了。如果一个请求时间过长,那么服务器就可以先暂停这个请求,先处理下一个请求,处理完再回来处理这个长请求,如果找回这个长请求呢,那就靠这个编号了。

    除此之处,它还规定了HTTP传输的所有内容都转为二进制进行传输,以前的版本只有头部信息会转为二进制,内容体并不会。不统一总会造成额外的麻烦。比如内容是文本,而文本是有多种样式的,这样的话解析它的一方就很麻烦了,要支持你各种样式。

    除此之外还有头信息压缩和服务器推送这里就不详细说了。

猜你喜欢

转载自blog.csdn.net/mottohlm/article/details/81023256