什么是HTTP/2?HTTP/2和HTTP/1.1区别是什么?
Posted 优质网络系统领域创作者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是HTTP/2?HTTP/2和HTTP/1.1区别是什么?相关的知识,希望对你有一定的参考价值。
HTTP/2(原名HTTP 2.0)即超文本传输协议第二版,使用于万维网。HTTP/2主要基于SPDY协议,通过对HTTP头字段进行数据压缩、对数据传输采用多路复用和增加服务端推送等举措,来减少网络延迟,提高客户端的页面加载速度。HTTP/2没有改动HTTP的应用语义,仍然使用HTTP的请求方法、状态码和头字段等规则,它主要修改了HTTP的报文传输格式,通过引入二进制分帧实现性能的提升。
HTTP/2解决了什么问题?
HTTP是应用最广泛、采用最多的一个互联网应用协议。早期版本的HTTP协议实现简单:HTTP/0.9只用一行协议就启动了万维网;HTTP/1.0则是对流行的HTTP/0.9扩展的一个正式说明;直到HTTP/1.1,IETF才发布可第一份官方标准。早期为了实现简单是以牺牲应用性能为代价:HTTP/1.1客户端需要使用多个连接才能实现并发和缩短延迟;HTTP/1.1不会压缩请求头字段和响应头字段,从而产生不必要的网络流量;HTTP/1.1不支持有效的资源优先级,致使底层TCP连接的利用率低下等等。
随着网络应用普及到人们的日常生活,它的应用范围、复杂性、重要性也在不断扩大。为了解决HTTP协议问题,HTTP/2应运而生。HTTP/2没有改动HTTP的应用语义,仍然使用HTTP的请求方法、状态码和头字段等规则,它主要修改了HTTP的报文传输格式,通过引入二进制分帧层实现性能的提升。HTTP/2主要基于SPDY协议,通过对HTTP头字段进行首部压缩、对数据传输采用多路复用和增加服务器推送等举措,来减少网络延迟,提高客户端的页面加载速度。
HTTP/2 vs HTTP/1.1
高健壮性
HTTP/1.1,使用基于文本格式,文本表现形式多样、场景多,健壮性不足。HTTP/2使用二进制格式,只有0和1的组合,选择二进制传输,协议解析实现方便且健壮。
高性能
HTTP连接会随着时间进行自我调节,起初会限制连接的最大速度,如果数据成功传输,会随着时间的推移提高传输的速度。这种调节被称为TCP慢启动。这种调节让具有突发性和短时性的HTTP连接变的十分低效。HTTP/2通过多路复用让所有数据流使用同一个连接,有效使用TCP连接,让高带宽也能真正的服务于HTTP的性能提升。
HTTP/2在应用层和传输层之间增加了二进制分帧,突破了HTTP/1.1性能限制,改进传输性能,实现低延迟和高吞吐量。
网络开销低
HTTP/2使用HPACK算法来压缩每次请求连接的头字段,降低了网络开销。HPACK算法可以减少需要传输的头字段大小,通讯双方通过建立和维护头字段表,字段表中使用长度较小的索引号表示重复的字符串,在用Huffman编码压缩数据,既避免了重复头字段的传输,又减小了需要传输的大小。
HTTP/2有哪些关键特性?
二进制分帧
HTTP/2所有性能增强的核心在于新的二进制分帧层,如下图所示,它是所有其他功能和性能优化的基础,它定义了如何封装HTTP消息并在客户端与服务器之间传输。
二进制分帧
HTTP/2没有改动HTTP的应用语义,仍然使用HTTP的请求方法、状态码和头字段等规则,它主要修改了HTTP的报文传输格式。HTTP/1.1协议以换行符作为纯文本的分隔符,而HTTP/2将所有传输的信息分割为更小的消息和帧,并采用二进制格式对它们编码,这些帧对应着特定数据流中的消息,他们都在一个TCP连接内复用。
以上是关于什么是HTTP/2?HTTP/2和HTTP/1.1区别是什么?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 HTTP/2 流比 HTTP/1.1 和 HTTPS 慢
HTTP 协议的前世今生HTTP 1.0HTTP 1.1 和 HTTP 2.0
HTTP 协议的前世今生HTTP 1.0HTTP 1.1 和 HTTP 2.0