网站访问速度已无处优化,要不要试试HTTP2.0?
Posted 网宿产品与服务
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网站访问速度已无处优化,要不要试试HTTP2.0?相关的知识,希望对你有一定的参考价值。
请输入标题 bcdef
大家好,我叫刚子,是一名普普通通的程序猿,
本来,生活会一直这么普普通通地过下去,
每天看看代码、改改bug,
撩撩新来的前台妹子,跟PM撕个X,
跟隔壁新来的php争论到底什么才是最好的语言,
日复一日,年复一年,
就这么普普通通、简简单单地过下去……
请输入标题 abcdefg
直到有一天,新来的总监烧起了新官上任的第一把火:
“周五之前交一份Q1总结报告,总结各组在用户体验、访问速度提升上做的优化,并探讨Q2改进的方向。”
架构已经优化到不能再优化,
加速用的是国内最好的CDN,最好的服务,
访问速度已经提升到最高水平了,
你们还有什么不满意的?
隔壁的PHP幽幽说了一句:要不试试HTTP2.0?
哇塞我怎么没想到?
这哥们儿简直一语惊醒梦中人!
于是我告诉他:
你这个想法不错,跟我的不谋而合。
于是,我需要提交一份可行性报告
告诉我的老板:
HTTP2.0如何让我们的网站更快。
关于HTTP2.0
首先,我们要知道,什么是HTTP2.0。
我们通过互联网获取内容,都是建立在HTTP协议的基础上的。HTTP2.0的前身,是HTTP1.1、HTTP1.0。
HTTP协议,是一个你来我往的过程,客户端(浏览器)发起请求(我要访问www.wangsu.com),请求到达服务端,服务端响应一个结果(网宿首页的内容),发起HTTP请求之前,需要建立连接。
就像网络购物一样,客户端下了一个单子,服务端收到订单之后,给客户端发货,这个交易的过程,就是基于连接发生的请求与响应。
这个客户端,是个剁手党,一天要下好几个单子,可是在HTTP1.0时代,连接无法复用,每次下完单,都被强制登出/关机,下一次下单,就得重新登录。
剁手党何其能忍?
其中一名剁手党看不下去了,作为一个程序猿,他决定改变这种现状,不然以后还怎么愉快地买键盘买主机买刀砍产品经理呢?
这个伟大的程序猿想到了一种优化方式:设置Connection:Keep-Alive,保持连接在一段时间内不断开。
HTTP1.1默认开启Keep-Alive,但是,在keep-alive背景下,必须要等待订单1完成后,再继续处理订单2、3……这样的方式显然浪费时间,于是,万能的程序猿又想到了一个方法:HTTP pipelining。不等订单1结束,客户端就连续下了订单2、3、4……
(果然是剁手党之王 ……)
只可惜,仓库是按顺序发货的,若订单1的商品暂时没货,需要调货,订单2、3的商品要等订单1的商品发出之后才能发出。
为了解决这种情况,买家增加了好几个购物渠道(建立多个连接),某东、某会、某品……这样假如其中一个购物渠道阻塞了,其他渠道的订单可以不受影响……
但是,这还是不能完全解决问题:
●购物渠道有限,最多只有6个;
●每换一个购物渠道都得与客服沟通三次(TCP三次握手),既浪费时间,也会对卖家的服务端造成压力,同时容易受到环境影响而中途断开,需要再次重建;
●随着订单的增多,多的订单还是只能按照先进先出(FIFO)的顺序进行排队,阻塞依旧很严重。
然而这一切都被机智的程序猿看在眼里,他们创造了一种SPDY协议,后续在此基础上,又起草了HTTP2.0协议。相比于HTTP1.X,HTTP2.0解决了许多问题:
多路复用
多路复用,即单个连接上同时进行多个业务单元数据的传输。
有了多路复用之后,在同一个交易渠道上,能够同时完成客户所有订单货物的采购和交付,客户端只要在每个订单上备注好ID,货物拆分发货,乱序到达之后按照ID重新组装即可,不会因为某个包裹的延误导致整体配送进度的推迟。
请求优先级
假如订单2的商品特别重要,就在订单2上留一段备注,服务端收到订单之后,会优先发出订单2的包裹。
同时,服务端评估订单5是短保产品,需要尽快到货,也会将订单5优先发货。
如此,一些比较重要的内容(如网页框架等)
即可优先展示
头部压缩
HTTP1.X的头部越来越膨胀,很多都是重复且多余的,HTTP2.0可以压缩头部的大小,并且避免了重复的传输,可以大大降低延迟。
就好比货物越轻,运送速度则越快,HTTP2.0协议下,卖家发货时将多余包装扔掉,这样买家就能更快地收到货啦!
服务端推送
服务端推送是HTTP2.0的一大亮点。
在客户端下了订单1之后,服务端预先判断客户端可能会需要下订单2、3、4……于是主动发货。这种主动推送的机制,可以节省接下来的几个请求耗时,提升访问速度。
科普完毕的分割线
有了HTTP2.0之后,卖家(网站)能够更快地将内容呈现给买家(用户)。
同为剁手党,我的老板一定能够对HTTP2.0的优势一目了然啦!
果然,收到报告之后,老板叫我去办公室一趟……
老板语重心长地说:刚子啊,你说的这个HTTP2.0是不错,可是目前应用的多不多?
要知道,第一个吃螃蟹的人发现了绝顶美味,第一个吃毒蘑菇的人可是死翘翘了啊!
幸亏机智的我早知会有这么一问……
HTTP2.0之趋势
HTTP2.0的实现已经比较成熟,截至2016年12月,前1000万个网站中,有10.8%支持HTTP2.0,其中自然少不了Google、Twitter等行业先驱。
国内网站中,百度、豆瓣、知乎、QQ邮箱、携程、搜狐、蘑菇街及部分直播平台等已经开始用HTTP2.0。
同时,专业的互联网平台提供商网宿也支持了全程(CDN三公里)HTTP2.0加速,系国内首家。
敲黑板!!看重点!!全程HTTP2.0加速!国内首家!
HTTP2.0作为新版本的网络协议肯定需要一段时间去普及,但HTTP本身属于应用层协议,离底层协议越远,对网络基础硬件设施的影响就越小,普及的阻力就越小,相信在国内互联的浪潮下很快就会普及。
老板:
很好!刚子
马上去做HTTP2.0的改造吧!
未完待续……
以上是关于网站访问速度已无处优化,要不要试试HTTP2.0?的主要内容,如果未能解决你的问题,请参考以下文章