在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
HTTP/2新增特性
HTTP/2通过多种多种技术手段(如:多路复用,头部压缩,优先级等),极大的优化了HTTP的C/S双端的数据交互体验,解决很多以往HTTP/1.1协议本身不能解决的问题。 HTTP/2的优势
先来看下带宽和延迟对页面加载的影响,数据来源:HTTP/2 is here, let’s optimize! - Velocity SC 2015
目前国内及一些发达国家,家庭带宽普遍也能达到5M以上了,所以HTTP/2即使减小了带宽占用,对我们WEB业务来说,提升也非常有限,收益不可观。但如果换一个角度来说,HTTP/2减小了带宽占用,那么对国内的网络基础设施,甚至是跨洋光纤来说,要求都会降低,也相当于变相提升了网络基础设置的品质。对那些像CDN这种靠带宽来收费的场景来说,减小带宽也会减小成本(特定场景,不一定所有的CDN场景都能减小带宽占用)。 RTT的优化导致延迟的减少,应该能极大程度上提升一些用户体验,这点看起来收益应该会比较明显,可事实又会怎样呢?程序猿们的智慧不可小觑,在HTTP/1.1阶段虽然不能通过多路复用来减少RTT,但是我们可以用连接并发啊。页面内的资源链接放到不同的域名下,单个域名连接数有限制就用泛域名分散-Domain sharding下。如果是icon这种小图标,资源太多又导致页面内链接太多,那就用雪碧图-CSS Sprites啊。所以,经过这么一折腾,HTTP/2减少RTT的优势也不存在了。 最后一点就是连接数的减少,这个是有绝对的优势了,之前HTTP/1.1甚至都通过增加连接数来优化页面性能。但这点优势也无非就是减少一些服务端的压力,对用户体验没有什么提升。对于不差钱的互联网公司门来说,减小的那一点压力还不至于去大动干戈。 HTTP/2的 另一个是关于HTTP/2服务的七层反向代理,当我们希望在一些网关对业务进行一些基础逻辑的处理时,需要使用这个。但由于HTTP/2引入了Stream States,这个流程略显复杂,相当于针对客户端和服务端要维护两套不相同的状态,使得这个七层代理的实现也有一些难度。Nginx官方也暂时不计划在Proxy Module中支持 upstream 的 HTTP/2,因为他们认为HTTP/2在性能的提升上,对 proxy 上的使用没有收益,甚至可能有反作用; 而且实现该功能,需要重写 upstream 模块,没有收益 + 工作体量大,就更没有必要去做了。 下图是通过配置了
当前时间: 最后放一部分HTTP/2相关的参考资料,供感兴趣的同学研究:
|
请发表评论