APP下载

Cloudflare发表可加速页面载入的Early Hints功能,主流浏览器都承诺支援

消息来源:baojiabao.com 作者: 发布时间:2024-11-28

报价宝综合消息Cloudflare发表可加速页面载入的Early Hints功能,主流浏览器都承诺支援

Cloudflare宣布开始支援能够有效提升浏览器页面载入效能的Early Hints技术,而这项技术,除了Google Chrome 94开发频道版本已经支援之外,Microsoft Edge和Mozilla Firefox也都打算支援。

Early Hints的概念,是在浏览器向服务器发出请求,等待收到回应之前,由边缘网络先发送页面载入提示给浏览器,让浏览器先开始准备渲染页面需要的资源,当浏览器收到服务器回应后,就能够更快速地完整渲染。

官方提到,Early Hints在他们的初始测试中,可以提升浏览器首次存取网站页面30%以上的载入速度。目前Early Hints已经以测试功能推出,Cloudflare用户可以在仪表板的设定中,请求启用Early Hints。

浏览器存取网站时需要收到指令,确定需要渲染的内容和取用的资源,才能完整绘制出网页页面,而这些指令来自于服务器的回应,由于发送这些回应的服务器,通常需要时间编译资源,因此这个回应的时间,被称为服务器思考时间,当服务器忙碌时,浏览器便会进入空闲状态,直到收到服务器的指令才能开始动作。

而Early Hints能够在服务器思考时间,异步地向浏览器发送提示,让浏览器在来源服务器还在编译时,就先开始载入资源,借由在浏览器收到完整回应之前,先发送指令给浏览器,可以让浏览器更快地载入网页,因此终端用户能够获得更佳的浏览体验。

过去也有许多尝试解决这个问题的方法,特别是HTTP/2的服务器推送功能,但服务器推送存在问题,就连Chrome都打算要弃用和删除这项功能,在Chrome的网络论坛讨论要删除HTTP/2和gQUIC的讨论串中,负责Chrome网页效能的工程师Pat Meenan提到,只要服务器推送能够智慧地完成,不推送已经存在于快取中的资源,而且在CDN边缘回传到来源服务器要求HTML时,刚好填补浏览器等待时间,那看似是一个良好的解决方案。

可惜的是,在实际情况中,同时满足这些条件的时机非常罕见,Pat Meenan表示,几乎在所有情况下,推送的资源最终都会阻塞HTML、CSS和渲染资源,延迟HTML是特别糟糕的情况,因为会同时延迟浏览器对页面所有资源的探索。而且事实上,也仅有部分浏览器和服务器支援推送功能,主要的CDN厂商则认为该功能实作窒碍难行,因此也未大规模支援。

Cloudflare提到,严格来说,Early Hints是一个网页标准,定义了新的HTTP状态代码103 Early Hints,其定义了客户端和服务器之间新的互动行为,在服务器准备200 OK回应时,Cloudflare系统便会先向系统发送103,并包含呈现网页所需要资源的提示,该提示有助于加速页面载入,以有效减少用户可感知到的延迟。

在服务器回应编译完成前,就可以让浏览器在服务器思考时间接到提示,预期接下来需要载入并获取需要的资源,这些资源包含浏览器渲染页面需要的内容、快取内容和其他启发式方法,以准备显示页面,直到服务器回传完整的回应。由于Cloudflare位于客户端和服务器的边缘网络,因此能够很好地代替服务器,向客户端发出预先载入提示。

Cloudflare用户不用任何变更,就能够应用这项新技术,Cloudflare位于网络边缘,除了可以快速提供提示之外,Cloudflare只要看过客户与其终端使用者的请求和回应资料流,就可以使用这些资料自动产生提示。用户可以将Early Hints结合rel=preconnect使用,来解决资料从未经请求过的问题。

官方解释,现在网页动辄载入数百个第三方资源,并且与外部来源建立连接和TLS对话,花费不少时间,在服务器思考时间,能够预先与第三方进行连结,也有助于加速页面载入。未来,Cloudflare准备提供Smart Early Hints功能,借由使用机器学习技术,来产生Early Hints。

目前Cloudflare开始与各家浏览器合作,以实现Early Hints,Chrome、Edge和Firefox都决定要支援Early Hints,目前用户可以在Google Chrome 94版本,看到Early Hints实际带来的效能加速效果。

2021-09-19 15:47:00

相关文章