1. Client requests X.html (which requires Y.css and Z.js) from Proxy.
2. Proxy forwards client's X.html request to Server.
3. [Server takes a long time to respond]
4. Server sends a 200 response to Proxy with X.html.
5. Proxy, per some configuration, adds Preload headers to this response indicating that Y.css and Z.js should be immediately loaded once this response is received, and sends it to Client.
6. Client requests Y.css and Z.js.
With the 103 status code, this would look like:
1. Client requests X.html (which requires Y.css and Z.js) from Proxy.
2. Proxy forwards client's X.html request to server and, per some configuration, immediately sends a 103 response with Preload headers for Y.css and Z.js to Client.
3. [Server takes a long time to respond]
4. In parallel, Client requests Y.css and Z.js.
5. Server sends a 200 response to Proxy with X.html.
6. Proxy sends this response to Client.
Note that since Y.css and Z.js are requested sooner, the final load time should be less.
Someone else suggested https://tools.ietf.org/html/draft-ietf-httpbis-early-hints-0..., which has more context without a need for a second click.
I guess it is related to preloading? Not quite getting the purpose.
Edit: ahh, the complete story is here: https://tools.ietf.org/html/draft-ietf-httpbis-early-hints-0... (fixed). Note that someone fixed the capitalized "A" in "approved" in the title. It confused my initial reading of the article.