You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
### Motivation
Per [RFC 9110
§15.2](https://www.rfc-editor.org/rfc/rfc9110.html#section-15.2) and
[RFC 9114
§4.1](https://www.rfc-editor.org/rfc/rfc9114.html#section-4.1), servers
may send zero or more interim responses (1xx status code) prior to the
final response, and clients MUST be able to parse one or more interim
responses prior to the final response.
There are two bugs in our current implementation:
- `HTTP3FrameValidator.RequestStreamValidator` currently only allows
sending/receiving multiple `100 Continue` interim responses. All other
1xx interim responses can only be sent/received once.
- `HTTPMessageParsingStateMachine` does not handle multiple interim
responses. Every HEADERS frame is treated as the final response head.
### Modifications
- Updated `HTTP3FrameValidator.RequestStreamValidator` and
`HTTPMessageParsingStateMachine` to support multiple interim responses
with any 1xx status code.
- Added associated tests.
### Result
Servers can now send, and clients can now parse, any number of 1xx
interim responses preceding the final response.
// A response MAY consist of multiple messages when and only when one or more interim responses (1xx; see Section 15.2 of [HTTP]) precede a final response to the same request.
230
230
// Interim responses do not contain content or trailer sections.
0 commit comments