关于前端:面试官HTTP2-有什么优点别再说-Server-Push-了

2次阅读

共计 1134 个字符,预计需要花费 3 分钟才能阅读完成。

2022 年 8 月 18 日,Chrome 开发团队博客公布了“Removing HTTP/2 Server Push from Chrome”一文,示意 Chrome 106 和之后的版本将默认禁用 HTTP/2 Server Push 个性

为什么会被移除?

Server Push 容许网站被动推送页面所需的资源,而不是被动期待。但实际上很难以此实现性能晋升,所以用这个个性的人并不多,应用了 HTTP/2 的站点中,仅有 1.25% 用了 Server Push。很多 HTTP/3 服务器和客户端都没实现 Push 性能,即便标准中规定了。对很多曾经用上 HTTP/3 的 web 服务来说,PUSH 实际上曾经过期了

HTTP/2 Server Push 的替代品

103 Early Hints 是个不错的抉择,它有很多与 Push 雷同的长处。与服务端推送资源不同,103 Early Hints 只向浏览器发送可能会立刻申请的资源提醒,并将申请资源的控制权交给浏览器 – 例如,如果 HTTP 缓存中曾经有了这些资源,就不须要再向服务端发动申请

预加载 (Preload) 要害资源也是一种抉择。它容许页面和浏览器一起工作,以便在页面加载晚期优先加载要害资源。尽管这个计划须要页面本身先被加载,但它不会提早要害资源加载

Early Hints

当初的网站越来越简单,服务器可能须要执行一些重要工作(比方连贯数据库)来生成所申请的页面。但这种服务器的“思考工夫”会在浏览器开始出现页背后产生提早。在服务器筹备响应的的过程中,连贯实际上始终处于闲暇状态(图中灰色局部即为服务器“思考工夫”)

Early Hints 是一个 HTTP 状态码,用于在最终响应前发送一个预申请。在服务器忙于生成次要资源(html 文档)同时,容许服务器向浏览器发送以后页面可能应用的要害子资源(css,js)的提醒,浏览器能够依据这些提醒,在期待主资源同时,预连贯,申请子资源。简略说,Early Hints 通过提前做一些工作来帮忙浏览器利用上述的服务器“思考工夫”,来减速页面加载速度

Preload

Preload 则是一个新的管制特定资源如何加载的 Web 规范。通过 <link ref="preload" /> 应用。通过 Preload 加载重要资源是个不错的抉择

论断

Web 技术须要尝试一些货色,并在不须要时抛弃。只管 Push 听起来很有后劲,但理论应用中问题比料想的更多。Chrome 团队在设计 Push 过程中学到了很多对于 103 Early Hints 的内容,当初是时候放弃 Push 了

参考

  • Removing HTTP/2 Server Push from Chrome
  • HTTP/2 push is tougher than I thought
  • Faster page loads using server think-time with Early Hints
正文完
 0