Contributed by
Kévin Dunglas
in #22273.

几周之前,我们添加了对使用HTTP/2进行推送的 asset preloading 的支持。由于反响强烈,我们决定改进并扩展此功能。实际上,我们决定为它创建一个完整的新组件: WebLink

这个新组件管理着resources的链接,而不仅仅是assets的;通知浏览器以HTTP 和 HTTP/2 pushes来预加载和预取资源。组件实现了如下特性: HTML5 Links, Preload, 和 Resource Hints

  • link(), 添加了 Link HTTP header;
  • preload(), preload resources (不只是 assets);
  • dns_prefetch(), 尽可能早地解析一个resource origin;
  • preconnect(), 初始化一个指向resource的早期connection (包括 DNSresolution, TCP handshake, 以及 TLS negotiation);
  • prefetch(), 指示客户端应当prefetch给定的resource;
  • prerender(), 指示客户端应当prerender(预渲染)给定的resource。

不像以上这些预加载功能,该组件并非仅对web assets有用。作为一个标准组件,意味着它也可以用在那些“在你的APIs中使用了HTTP/2推送来嵌入的资源进行替换”之案例中。