devkult_
tools29converters34

103 Early Hints

1xx informational

An interim response that lets the browser start preloading resources while the server is still preparing the page.

103 Early Hints arrives before the final response and carries Link headers such as Link: </app.css>; rel=preload; as=style. While the server is still querying the database or rendering HTML, the browser can already open connections and fetch critical CSS, fonts or scripts. The final 200 follows on the same request.

Class1xx Informational
Retry?Not applicable
Cacheable by defaultNo — only with explicit Cache-Control
Response bodyNone
Defined inRFC 8297 — An HTTP Status Code for Indicating Hints
Example response
HTTP/1.1 103 Early Hints

When you'll see it

  • A CDN or server configured to send early hints — Cloudflare, Fastly and Akamai support it, and Node.js has response.writeEarlyHints() since 18.11.
  • Chromium browsers act on 103 since version 103; Firefox and Safari added partial support later (often preconnect only).

What to do

  1. Only hint resources the final page will definitely use; unused preloads waste bandwidth and trigger console warnings.
  2. Early hints only help when there's server think-time to fill. For a fast static page the gain is close to zero.
  3. Browsers only honour 103 over HTTP/2 or HTTP/3.

Check what a URL returns

Print just the status line from the command line, or check a whole list of URLs at once, with their response headers, in the HTTP Status Checker.

curl -sI https://example.com/your-path | head -n 1

Frequently asked questions

Is 103 Early Hints the same as HTTP/2 server push?

No. Push sent resource bytes unasked and was removed from Chrome in 2022 because it often wasted bandwidth. Early Hints only tells the browser what to fetch; the browser decides, and can use its cache.

How do I send 103 from Node.js?

Call response.writeEarlyHints({ link: '</style.css>; rel=preload; as=style' }) before writing the final response (Node 18.11 or later).

Headers used with 103
Related status codes