Informational · 1xx

103 Early Hints

The server hints at resources the client can preload while the final response is still being prepared.

What 103 Early Hints means

103 Early Hints is a performance optimization. The server sends 103 with Link: <style.css>; rel=preload; as=style headers before the real response is ready. The browser uses those hints to start fetching critical resources (CSS, fonts, scripts) in parallel, shaving time off the perceived page load. Once the actual response is ready, the server sends the final status (usually 200) along with the full body.

When servers should return it: Servers return 103 when they know which subresources a page needs but cannot yet produce the page itself (e.g. waiting on a slow database query). Cloudflare, Fastly, and most modern Node frameworks support 103.

Example response

# Server-side (Express) usage:
res.writeEarlyHints({ link: '</css/main.css>; rel=preload; as=style' });
// ... later, after data is ready:
res.send(html);

Related status codes

Frequently Asked Questions

Which browsers support 103?
Chrome 103+, Edge 103+, Safari 17+, and Firefox 120+. Older browsers ignore it safely.
Do I need server changes to use 103?
Yes. The server must send the early hints before the real response. Express, Fastify, Cloudflare Workers, and Nginx all support it; Apache support is limited.
When should I NOT use 103?
When the response is fast (under 100ms). The hint costs a round trip; if the body arrives before the browser finishes parsing the hint, you gain nothing.
Defined in: RFC 8297 · Class: 1xx Informational

More references

For a one-page reference of all HTTP status codes, see the HTTP cheat sheet. For testing API responses, try the API Tester tool. For inspecting responses on the command line, the curl cheat sheet covers the most common flags.