HTTP2 的重要改进
前言
HTTP2 的出现,相比于 HTTP1.0 和HTTP1.1,大幅度的提升了web的性能。那么它又是怎么提高性能的呢?
本篇文章主要是简单的归纳一下HTTP2的优点。
HTTP2优点
1、多路复用
多路复用:多路复用允许同时通过单一的 HTTP2 连接发起多重的请求-响应消息。
也就是说一个TCP连接可以一次发送和接受多个请求拉。
这样实际上就避免了突发性和短时性的HTTP连接性能差的问题了(因为TCP协议里面有慢启动,开始都很慢的).
2、二进制分帧
HTTP2 传输的数据是二进制的。相比 HTTP1.1 的纯文本数据,二进制数据一个显而易见的好处是:更小的传输体积。这就意味着更低的负载。二进制的帧也更易于解析而且不易出错,纯文本帧在解析的时候还要考虑处理空格、大小写、空行和换行等问题,而二进制帧就不存在这个问题。
3、头压缩
HTTP是无状态协议。简而言之,这意味着每个请求必须要携带服务器需要的所有细节,而不是让服务器保存住之前请求的元数据。因为http2没有改变这个范式,所以它也需要这样(携带所有细节),因此 HTTP 请求的头部需要包含用于标识身份的数据比如 cookies
,而这些数据的量也在随着时间增长。每一个请求的头部都包含这些大量的重复数据,无疑是一种很大的负担。对请求头部进行压缩,将会大大减轻这种负担,尤其对移动端来说,性能提高非常明显。
HTTP2 使用的压缩方式是 HPACK。
4、服务推送
HTTP/2 的服务器推送所作的工作就是,服务器在收到客户端对某个资源的请求时,会判断客户端十有八九还要请求其他的什么资源,然后一同把这些资源都发送给客户端,即便客户端还没有明确表示它需要这些资源。客户端可以选择把额外的资源放入缓存中(所以这个特点也叫 Cache push),也可以选择发送一个 RST_STREAM frame 拒绝任何它不想要的资源。减少了交互次数。
内容总结自:https://www.cnblogs.com/ghj1976/p/4552583.html