Alt-Used proxy request
Identifies which alternative service the client is currently using — sent by clients after connecting via an Alt-Svc advertisement.
What it does
Alt-Used is sent by a client after it connects to an origin via an alternative service advertised in Alt-Svc. It tells the server which alternative it's currently using — specifically, the host and port of the alternative service connection.
If a server advertised Alt-Svc: h3="alt.example.com:443" and the client connected to that alternative, it sends Alt-Used: alt.example.com:443 on subsequent requests so the server knows the request arrived via that specific path.
Syntax
Alt-Used: <host>:<port>
Alt-Used: example.com:443
Alt-Used: alt.example.com:8443
Why it exists
The problem: when a server advertises multiple alternative services (different hostnames, ports, or protocols), it can't tell from the connection alone which alternative a client used. The connection might arrive on the same socket regardless.
Alt-Used closes that information gap — the server can log, route, or make decisions based on which alternative path the request arrived on.
Practical relevance
Honestly? Alt-Used is one of the least commonly encountered headers in the wild. Most deployments advertise a single HTTP/3 alternative on the same host and port (h3=":443"), in which case the server already knows which alternative is being used. Alt-Used matters more in complex multi-service architectures where a request could arrive via several different alternative paths.
You'll rarely need to set or read this header in application code. It's primarily relevant for proxy authors, CDN engineers, and infrastructure teams building multi-path routing systems.
How it fits the Alt-Svc flow
1. Server → Client: Alt-Svc: h3="alt.example.com:443"; ma=3600
2. Client connects to alt.example.com:443 via QUIC
3. Client → Server: GET /resource HTTP/3
Alt-Used: alt.example.com:443
Real-world example
Client using an HTTP/3 alternative on a different host:
GET /api/data HTTP/3
Host: example.com
Alt-Used: alt.example.com:443
Client using HTTP/3 on the same host (most common case): Typically omitted since server can infer it — but compliant clients should send it.
FAQ
Do browsers actually send Alt-Used?
Chrome and other browsers do send Alt-Used when using an alternative service. You won't see it in DevTools easily (it's a request header that goes to the server), but you can capture it in nginx/server logs.
Do I need to handle Alt-Used in my application?
Almost certainly not. It's relevant for infrastructure-level routing decisions, not application logic. Your web framework can safely ignore it.
Fun fact
Alt-Used is defined in the same RFC as Alt-Svc (RFC 7838) but is the less glamorous sibling — Alt-Svc gets all the attention for enabling HTTP/3 upgrades, while Alt-Used is the quiet bookkeeping header that lets the server know the upgrade worked. It's the HTTP equivalent of a "delivery confirmation" for protocol negotiation.