Support multiple interim responses - #6
Merged
aryan-25 merged 4 commits intoJul 1, 2026
Conversation
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.
gjcairo
requested changes
Jun 29, 2026
gjcairo
approved these changes
Jun 29, 2026
josephnoir
approved these changes
Jul 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
Per RFC 9110 §15.2 and RFC 9114 §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.RequestStreamValidatorcurrently only allows sending/receiving multiple100 Continueinterim responses. All other 1xx interim responses can only be sent/received once.HTTPMessageParsingStateMachinedoes not handle multiple interim responses. Every HEADERS frame is treated as the final response head.Modifications
Updated
HTTP3FrameValidator.RequestStreamValidatorandHTTPMessageParsingStateMachineto 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.