http2续

Posted scu_2008_hike

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http2续相关的知识,希望对你有一定的参考价值。

HTTP/2给我们的好处

  • 多路复用 :一次TCP握手,多个同域并行请求,请求和响应同时发送接受,然后再拼装组合,不阻塞;
  • 优先级和依赖性(Priority) :可以请求的时候告知服务器端,资源分配权重,优先加载重要资源;
  • 服务器推送(Server Push) :根据客户端需求,服务端主动推送资源,减少请求耗时;

HTTP1.1中,所有为了减少请求而做出的HACK,在HTTP/2中都已经不再是性能优化考虑的主要点了。

分域名

HTTP1.1时代,我们经常会用多个域名来做请求优化,因为浏览器同域名下会有并行请求数限制(根据浏览器不同2-8个,比如IE6只有两个),然而DNS解析又得额外花时间,所以以前对域名的个数还需要根据各自网站找一个平衡点。HTTP/2就不用理会这个了,因为多路复用,并行请求不再是瓶颈,收敛了域名后还能减少DNS解析时间,所以HTTP/2中我们不用再细分域名了。

接口请求

HTTP1.1的时候,我们经常会根据当前的页面,将请求合并成一个。HTTP/2中可以更细粒度的组合你的接口,不用再根据某个页面所需数据,来组合一个专门的无意义的接口了(不用合并请求),不怕请求多,就怕单个请求太慢。

内联资源

有人说Server Push就是另外一种形式的内联,其实不是,内联太Low了,完全无法跟它来比较。

首先我们来回顾下,HTTP1.1时代,我们为什么要内联,因为我们希望减少请求,我们为了加快首页的渲染速度,甚至会把首页第一屏的样式内联到html中,一起返回,加速首屏渲染。然而当有人想改动首屏任何内容,无论多小都得重新替换掉整个页面。

在HTTP/2下我们可以通过推送的方式给你想要的资源,跟你的HTML请求一块儿返回给你,不仅如此,push的内容还可以进行缓存,多页面共享。

以上是关于http2续的主要内容,如果未能解决你的问题,请参考以下文章

TrafficServer http2 代码分析

如何使用 nodejs 模块 http2 将 http2 与 ExpressJS 集成?

http2 中的 half close 有啥作用? http2中流状态的本地和远程之间的区别是啥?

我们是不是需要在 Apache 服务器上启用 http2,如果 CDN 启用了 Http2

nginx如何启用对HTTP2的支持 | nginx如何验证HTTP2是否已启用

http2 技术整理 nginx 搭建 http2