103 Early Hints(RFC 8297)允许服务器在最终响应准备好之前先发送部分响应头,通常是带有 rel=preload 或 rel=preconnect 的 Link 头。服务器还在生成页面时,浏览器就可以提前建立连接,下载关键的 CSS、字体或脚本。同一请求的最终响应(通常是 200 OK)随后返回。
浏览器只把这些提示当作建议。基于 Chromium 的浏览器在通过 HTTP/2 和 HTTP/3 进行顶层导航时,会处理 103 中的 preload 和 preconnect 提示;其他浏览器对早期提示的支持程度不一。不认识 103 的客户端会忽略它。一些 CDN 可以代为发送 103 响应,例如 Cloudflare 会根据之前响应中的 Link 头自动生成。
这些提示在服务器确定最终状态之前就已发出,因此最终响应仍可能是重定向或错误,届时预加载的资源可能根本用不上。103 中的响应头不会沿用到最终响应;如果这些响应头很重要,需要在最终响应中再发送一次。
响应示例
HTTP
HTTP/1.1 103 Early Hints
Link: </assets/app.css>; rel=preload; as=style
Link: <https://cdn.example.com>; rel=preconnect
HTTP/1.1 200 OK
Date: Fri, 06 Nov 2026 10:15:32 GMT
Content-Type: text/html; charset=utf-8
Link: </assets/app.css>; rel=preload; as=style
Link: <https://cdn.example.com>; rel=preconnect
Transfer-Encoding: chunked SEO 与重定向检测
103 对 SEO 没有直接影响,因为爬虫会忽略临时响应,只索引最终响应。间接来看,早期提示可以改善真实用户的加载指标,例如 Largest Contentful Paint(最大内容绘制)。重定向检测工具列出的是每一跳的最终状态;103 响应由 HTTP 客户端在内部处理,不会显示为单独的一跳。
常见原因与使用场景
- Cloudflare Early Hints 等 CDN 功能重放了它在之前响应中看到的
Link: rel=preload响应头。 - 应用服务器在查询数据库或渲染页面的同时发送 103。
- 提示似乎没有效果:检查网站是否通过 HTTP/2 或 HTTP/3 提供服务,以及提示是否针对页面导航发送,而不是针对子资源。