Preserve response boundaries and choose compatible clients
05Misreading an informational response as final can associate later bytes with the wrong request. Servers can choose not to send 103 to HTTP/1.1 clients whose handling is uncertain.
For an HTTP/1.1 client with uncertain informational handling, a server can omit 103 and send only the eventual final response. Early Hints are optional, not required for a successful request.
Source for this drawing: RFC 8297 · Read RFC section 3 ↗
New to this? Start hereA quick picture + helpful background
A message needs an address.
Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.
Helpful first, if these ideas are unfamiliar
These pictures are analogies to help you learn. The linked RFC explains the actual rules.
Terms in this drawing
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
Do not trade correct response framing for a speculative speedup.
- An HTTP/1.1 client mishandling 103 as final can misassociate subsequent responses. With requests for different origins on a persistent connection, that can cause cross-origin information disclosure.
- RFC 8297 says a server might refrain from sending 103 over HTTP/1.1 unless the client is known to handle informational responses correctly. This is compatibility guidance, not a blanket MUST NOT for HTTP/1.1.
- HTTP/2 clients are less likely to suffer this specific framing mistake because header handling does not determine the body end. This is not a claim that HTTP/2 removes all security risks. IANA registered code103 as Early Hints.
- Current RFC 9110 §15.2 says a server MUST NOT send a 1xx response to an HTTP/1.0 client. The optional HTTP/1.1 compatibility choice is a different rule.
The vulnerable example is explicitly conditional: a broken client using a persistent proxy connection for multiple origins. It does not depict ordinary direct HTTP/1.1 connections as sharing unrelated origins automatically. No real requests, private bodies or exploits were used. 103 does not grant access, finish the request or mandate server push. The original memo referenced RFC 7540; current HTTP/2 is specified in RFC 9113.
Read the RFC section ↗