103 Early Hints is an interim response that sends Link headers ahead of the final response so the browser can start preloading resources such as CSS, fonts, and scripts. Overlapping server processing with resource fetching improves perceived performance (for example LCP).
It carries no body, and the final response (usually 200) follows, typically repeating the same Link headers.
GET /article HTTP/1.1
Host: example.comHTTP/1.1 103 Early Hints
Link: </styles/main.css>; rel=preload; as=style
Link: </fonts/inter.woff2>; rel=preload; as=font; crossorigin
HTTP/1.1 200 OK
Content-Type: text/html
Link: </styles/main.css>; rel=preload; as=style
<!doctype html>...app.get('/article', (req, res) => {
res.writeEarlyHints({
link: ['</styles/main.css>; rel=preload; as=style']
});
renderArticle().then(html => res.send(html));
});HTTP/1.1 103 Early Hints
Link: </app.js>; rel=preload; as=script
HTTP/1.1 200 OK