云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

云数据库_阿里企业邮箱客户端_免费1年

小七 141 0

宣布支持HTTP/2服务器推送

去年11月,我们为所有客户推出了HTTP/2支持。当时,HTTP/2还没有被广泛使用,但是在Alexa 200万个网站中,有超过88k个是HTTP/2启用的。今天,超过70%使用HTTP/2的站点通过CloudFlare提供服务。罗杰·普莱斯2.0图像抄送SPDY的增量改进HTTP/2的主要优点是多路复用,它允许多个HTTP请求共享一个TCP连接。与HTTP/1.1相比,这对性能有很大的影响,但这并不是什么新鲜事,SPDY至少从2012年就开始对TCP连接进行多路复用。HTTP/2的一些最重要的方面还没有被主要的web服务器或边缘网络实现。HTTP/2真正的希望来自于诸如头压缩和服务器推送之类的全新特性。自2月份以来,我们一直在悄悄地测试和部署HTTP/2头压缩,这使得使用HTTP/2的所有客户端的头大小平均减少了30%。太棒了。然而,真正的机会,一个巨大的飞跃的web性能来自于服务器推送。向前推进今天,我们很高兴地宣布对我们所有客户的HTTP/2服务器推送支持。服务器推送使网站和api能够在浏览器发送请求之前将内容投机性地传递到web浏览器。这种行为是机会主义的,因为在某些情况下,内容可能已经在客户机的缓存中,或者根本不需要。它被吹捧为HTTP/2的主要特性之一,通过启用它,我们为所有用户提供了一整套HTTP/2特性。你可以在我们的实时服务器推送演示中看到它的作用。如果使用得当,服务器推送可以显著提高性能。在最基本的形式中,服务器推送允许服务器"捆绑"客户机没有要求的资产。它的工作原理是发送PUSH_PROMISE—发送资产的意向声明,然后是实际资产。在收到PUSH_PROMISE后,客户机可能会用RST_STREAM消息进行响应,表明不需要该资产。即使在这种情况下,由于HTTP/2的异步特性,客户机可能在服务器获得RST_STREAM消息之前接收资产。PUSH_PROMISE看起来很像HTTP/2get请求,客户端在发送传出请求之前尝试匹配收到的PUSH promises。启用服务器推送我们所有使用HTTP/2的客户现在都启用了服务器推送功能,但不幸的是,服务器推送并不是一种有效的功能,您需要做一些工作才能真正利用服务器推送的好处。我们的实现遵循W3C标准草案中关于在链接头中使用preload关键字的指导方针[1],我们将继续跟踪该标准的发展。因此,如果要为给定请求推送资产,只需向响应添加一个特殊格式的链接头:链接:;rel=预加载;as=脚本这些链接可以手动添加,但它们已经由许多发布工具自动创建,或者通过流行内容管理系统(CMS)的插件(如WordPress)自动创建。我们的边缘服务器将只推送相对链接,这意味着服务器推送不能与第三方资源一起工作。禁用服务器推送Link头最初是为了让浏览器知道他们应该预加载一个资产。如果出于遗留原因仍需要此行为,可以将nopush指令附加到头中,如下所示:链接:;rel=预加载;as=样式;nopush是服务器推送吗?服务器推送具有巨大的性能提升潜力。然而,它不能加速每个网站,甚至可以降低性能,如果你过于热心。一般来说,推送最终未使用的资产的缺点只是浪费带宽,而好处是相当于从客户端到边缘网络的一次往返。在移动网络等缓慢的、有损的连接上,这两者的优点和优点都很明显。我们建议您在使用和不使用服务器推送的情况下对您的单个网站/API的行为进行分析,以评估其好处。在我们的测试中,我们发现在移动网络上使用服务器推送时,性能提高了大约45%。还请注意,由于服务器推送操作通过给定的HTTP/2连接进行,因此它只能用于从您的域推送资源。如果您的网站在第三方资产上遇到瓶颈,服务器推送不太可能帮助您。HTTP/2服务器推送的一些最佳使用情形包括:不可缓存的内容-不在边缘缓存的内容可以从服务器推送中获益,因为它将在连接的早期从源站请求。请求页面上的所有资产-通过将所有CSS、JS和图像资产推送到给定页面上,就可以在一次往返中传输整个页面。这仅在没有第三方资产阻止页面呈现时有用。如果大部分资产缓存在客户机浏览器上,这种行为可能是浪费。最有可能的下一页-如果加载的页面上有一个链接很可能被单击下一页(例如博客中最近的文章),则可以同时推送HTML和所有该页面资产。当用户单击链接时,它几乎会立即渲染。分析服务器推送目前有几种工具和浏览器支持服务器推送。然而,为了直观地看到该功能的性能优势,当前的googlechrome金丝雀版本是最好的。下面是一个网页的示例,其中有五个图像加载,有和没有服务器推送,如时间轴所示:普通HTTP/2:在加载主页面(以及一些处理时间)后,浏览器会对这五幅图像发出请求。在另一次往返之后,这些图像被传送并加载。HTTP/2+服务器推送:如果启用了服务器推送,我们可以看到图像是在页面处理过程中传递的,因此不需要额外的往返。一旦需要这些图片,Chrome就会将其与现有的推送承诺相匹配,并立即使用它们。在CanaryChrome中,您还可以看到被推送的资产在Initiator列中被标识为Push/Other。其他浏览器:火狐推送的资产不会得到时间轴,而是由一个实心的灰色圆圈标识(与缓存的内容不同,缓存内容由非实心圆圈标识,"已传输"选项卡中有一个"缓存"指示)。普通HTTP/2:HTTP/2+服务器推送:边缘推送资产在时间轴(TTFB)中没有黄色条,并且在Protocol选项卡下,协议将显示为HTTPS而不是HTTP/2。普通HTTP/2:HTTP/2+服务器推送:游猎Safari浏览器目前不支持服务器推送,但有望在不久的将来提供支持。HTTP/2的下一步是什么?在未来,我们计划开发新的工具来帮助我们的用户在服务器推送方面做出更明智的决定。随着时间的推移,CloudFlare甚至可以预测自动推送的最佳资产。这个特性是非常新的,CloudFlare是第一个大规模部署它的主要提供商。我们期待着从使用服务器推送的客户那里听到消息,现在我们已经将其用于实验。我们相信,服务器推送是自SPDY以来最重要的网络升级。它在加速互联网发展方面有着巨大的潜力,因为它第一次赋予网站所有者在浏览器发出请求之前就将信息发送给浏览器的权力。我们还将监视仍在进行的HTTP/2开发过程,特别是使服务器推送更多地了解客户机的缓存(从而减少冗余推送的数量)的努力。我们目前只在HTTP标题中查看链接元素,而不是在页面HTML中。↩︎