103 Early Hints

The HTTP 103 status code means a server is sending HTTP headers that are likely to be included in the final response.

The most practical example of this is the server sending Link HTTP headers. Servers can inform clients beforehand that they will likely need the following resources, so clients can start downloading them right away.

 HTTP/2 103 Early Hints
 Link: </tailbreeze.css>; rel=preload; as=style
 Link: </voodoo.js>; rel=preload; as=script

Servers can send one or more 103 Early Hints responses:

 HTTP/2 103 Early Hints
 Link: </tailbreeze.js>; rel=preload; as=script

Link headers only serve as hints: the server might or might not include those headers in a final response.

 HTTP/2 200 OK
 Content-Length: 4242
 Link: </voodoo.js>; rel=preload; as=script
 Link: </tailbreeze.css>; rel=preload; as=style
 Link: </tailbreeze.js>; rel=preload; as=script
 Link: </tailstorm.js>; rel=preload; as=script

Link HTTP header serves the same purpose as the <link> HTML tag - informing clients to pre-emptively fetch resources. HTTP headers can be used in contexts where HTML can’t, such as stylesheets, scripts, and web fonts. Despite that, the <link> tag is used more often.

<link rel="preload" href="https://example.com/voodoo.js" as="script">

Support

103 Early Hints is an experimental status code, so the support among browsers, HTTP libraries, and web servers is very limited.

Chrome has started an experiment to learn the effectiveness of Early Hints.