跳转到内容
搜索文档

Early Hints

最后更新 查看 MarkdownAgent 设置

当浏览器请求页面时,源站服务器需要时间准备完整响应。Early Hints 利用这段等待时间向浏览器发送包含 Link 标头的初步 103 响应,告诉浏览器需要哪些资源。浏览器可以在完整响应到达之前开始加载这些资源,从而加速页面加载。

Early Hints 在 RFC 8297 ↗ 中定义为新的 HTTP 状态码(103 Early Hints)。Cloudflare 缓存并提供来自 HTML 页面的这些带有 Link 标头的 103 响应,减少用户感知的延迟。

有关 Early Hints 的更多信息,请参阅 Cloudflare ↗ 和 Google Chrome ↗ 博客。

可用性

FreeProBusinessEnterprise

Availability

Yes

Yes

Yes

Yes

启用 Early Hints

  1. 在 Cloudflare 仪表板中,前往 Speed(速度) > Settings(设置) 页面。

    Go to Settings ↗
  2. 前往 Content Optimization(内容优化) 选项卡。

  3. 对于 Early Hints,将开关切换为 On(开启)。

生成 Early Hints

Early Hints 仅在以下情况下生成和缓存:

  • 对于具有 .html、.htm 或 .php 文件扩展名或无文件扩展名的 URI
  • 在 200、301 或 302 响应返回码上
  • 当响应包含带有 preconnect 或 preload rel 类型的 link 标头 ↗ 时,例如 Link: </img/preloaded.png>; rel=preload

发出 Early Hints

Cloudflare 将在主响应之前异步查找并发出缓存的 103 Early Hints 响应。

目前,只有某些浏览器版本会在收到 Early Hints 后采取行动进行 preload 或 preconnect,例如 Google Chrome M94 及更高版本。有关使用 WebPageTest 实验兼容客户端浏览器的说明,请参阅博客文章 ↗。

此外,请记住:

  • Early Hints 响应可能在到达源站服务器或 Worker 之前发出。启用 Early Hints 且站点上的页面需要身份验证时,未认证的访问者可能会收到 103 响应。103 响应将包含缓存的 Link 标头,并在源站的 403 Forbidden 响应之前发送。
  • 对于内容可缓存的请求,Early Hints 可能发出频率较低。如果响应已被缓存,Cloudflare CDN 更可能在异步 Early Hints 查找完成之前获取响应标头。如果主响应标头已可用,Cloudflare 不会发送 103 响应。
  • Cloudflare 目前对某些 User-Agent 禁用 Early Hints,例如,与 1xx 响应不兼容的某些搜索引擎爬虫 bot。
  • 启用 Early Hints 时,您可能会在 Cloudflare Logs 中看到大量 RequestSource 为 earlyHintsCache 的 504 响应,这是预期且无害的。来自 earlyHintsCache 的请求是缓存 Early Hints 的内部子请求,它们既不是最终用户请求,也不会前往您的源站。它们的响应状态仅指示请求 URI 是否有缓存的 Early Hints(缓存 HIT 时为 200,缓存 MISS 时为 504)。这些请求已在其他视图(如 Cache Analytics)中过滤掉。要过滤这些请求或仅过滤网站的最终用户请求,请参阅过滤最终用户。

这篇文档对您有帮助吗?