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 informational responses (1xx status code) prior to the final response, and clients MUST be able to parse one or more informational responses prior to the final response.
There are two bugs in our current implementation:
- `HTTP3FrameValidator.RequestStreamValidator` currently only allows sending/receiving multiple `100 Continue` informational responses. All other 1xx informational responses can only be sent/received once.
- `HTTPMessageParsingStateMachine` does not handle multiple informational responses. Every HEADERS frame is treated as the final response head.
Modifications:
- Updated `HTTP3FrameValidator`'s `RequestStreamValidator` and `HTTPMessageParsingStateMachine` to allow multiple informational responses with any 1xx status code to be sent/received.
- Added associated tests.
Result:
Servers can now send, and clients can now parse, any number of 1xx informational responses (with any 1xx status code) 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