1xx Informational

103 Early Hints

What it means

Early Hints allows a server to send preliminary response headers — particularly Link: rel=preload directives — before the final HTTP response is ready. This enables browsers to start loading CSS, JS, and fonts while the server finishes generating the page, improving page load performance.

Site Visitor

What can I do?

  • No action needed — this is an informational or success response, not an error.
Developer

How to debug & fix

  1. Add Link headers for critical CSS/JS resources in your 103 response
  2. Not all clients support 103 — always send the same Link headers in the final response too
  3. Currently best supported via CDNs (Cloudflare) that inject 103 responses
  4. Check CDN support: Cloudflare and Fastly send 103 automatically when Link preload headers are configured.

Code Example

Node.js / Express
// Send early hints before the full response
res.writeHead(103, { 'Link': '</styles.css>; rel=preload; as=style' });
res.flushHeaders();
const data = await heavyDbQuery();
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end(renderPage(data));

Related Status Codes

How HTTP Status Codes Work

Every HTTP response carries a three-digit status code that tells the client — browser, API consumer, or search-engine crawler — exactly what happened. The first digit defines the class: 1xx informational (request in progress), 2xx success, 3xx redirection, 4xx client error (bad request, missing auth, not found), and 5xx server failure.

Status codes are standardised in RFC 9110 (HTTP Semantics, 2022). Extensions like WebDAV (RFC 4918) and rate-limit headers (RFC 6585) added codes beyond the core set. When a client receives an unrecognised code, the rule is to treat it as the generic x00 of its class.

Why the Right Code Matters

Semantically correct codes help search engines index accurately (301 passes link equity; 410 removes pages faster than 404), allow API clients to implement correct retry logic (429 + Retry-After, 503 + Retry-After), and let monitoring systems distinguish bugs (500) from load issues (503) from auth failures (401/403).

Looking up a different status code? The full reference covers all HTTP codes with causes, fix guides, and copyable code examples for Node.js and Python.

Browse the full HTTP Status Code reference →

Frequently Asked Questions

What does HTTP 103 Early Hints mean?
Early Hints allows a server to send preliminary response headers — particularly Link: rel=preload directives — before the final HTTP response is ready. This enables browsers to start loading CSS, JS, and fonts while the server finishes generating the page, improving page load performance.
Is HTTP 103 the visitor's fault?
No. HTTP 103 Early Hints is an informational or success response. It is not caused by anything the visitor did wrong.
How do I fix HTTP 103 Early Hints?
HTTP 103 Early Hints is not an error — no fix is needed. Developers should ensure their HTTP client correctly handles this interim or success response.