0
点赞
收藏
分享

微信扫一扫

HTTP/2相比1.0有哪些重大改进?

Star英 2021-09-28 阅读 55

1. 减少连接无法复用的问题

HTTP协议是建立在TCP连接上的,例如TCP每次均要通过三次握手建立连接,在TCP连接建立初期有慢启动(slow start)的特性。所以连接重用要比新建连接性能要好。

1.1 HTTP/1.x使用keep-alive保持长连接

在Http1.x中在请求头中可以设置Connection:Keep-Alive来保持长连接。可以在一定时间内复用连接。但是在http1.x协议中,浏览器在同一时间,针对同一域名下的请求由一定数量的限制,超过限制数目的请求就会被阻塞。

1.2 HTTP/2多路复用的单一长连接

在HTTP/2中,浏览器请求同一个域名,只会建立一条TCP连接,虽然只有一条TCP连接,但是在逻辑上分成了很多Stream。HTTP/2把要传输的信息分割成一个个二进制帧。多个帧可以乱序发送,根据帧首部的流标识可以重新组装。同时流还支持优先级和流量控制。以确保重要的东西可以优先被加载完。

多路复用允许同时通过单一的 HTTP/2 连接发起多重的请求-响应消息。

2. 头部压缩与二进制格式

HTTP/1.x是传输的文本格式,而HTTP/2采用的是二进制格式传输数据。

HTTP/2对消息头会采用HPACK进行压缩传输,能够节省消息头占用的网络流量,而HTTP/1,x每次请求,都会携带大量冗余头信息,浪费了很多带宽资源。

3. 服务端推送 Server Push

HTTP/2支持“缓存推送”。主要的思想是:当一个客户端请求资源X,而服务器知道它很可能也需要资源Z的情况下,服务器可以在客户端发送请求前,主动将资源Z推送给客户端。不需要客户端解析HTML在发送这些请求。当客户端需要的时候,它已经在客户端了。

推荐阅读

知乎—HTTP/2 相比 1.0 有哪些重大改进?

举报

相关推荐

0 条评论