Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

Tratcher
Copy link
Member

@Tratcher Tratcher commented Oct 20, 2022

When HTTP/2 hits a header related limit (total size or count) it aborts the connection because HPACK is stateful and failing to process the rest of the headers in a request could corrupt the connection HPACK state. HTTP/3 copied this model.

To avoid this we'll allow up to 2x of the limits while processing the headers, but then enforce the hard limits later when we can send a 431.

@Tratcher Tratcher added this to the 8.0-preview1 milestone Oct 20, 2022
@Tratcher Tratcher requested a review from halter73 as a code owner October 20, 2022 23:44
@Tratcher Tratcher self-assigned this Oct 20, 2022
@MihaZupan
Copy link
Member

To avoid this we'll allow up to 2x of the limits while processing the headers, but then enforce the hard limits later when we can send a 431.

Would it be possible to skip enforcing the header count limit while receiving, and only enforce the exact value afterwards?

@Tratcher Tratcher requested a review from halter73 October 25, 2022 22:26
@Tratcher
Copy link
Member Author

To avoid this we'll allow up to 2x of the limits while processing the headers, but then enforce the hard limits later when we can send a 431.

Would it be possible to skip enforcing the header count limit while receiving, and only enforce the exact value afterwards?

We'd rather not, that significantly reduces the effectiveness of the limit.

@build-analysis build-analysis bot mentioned this pull request Oct 26, 2022
2 tasks
@Tratcher
Copy link
Member Author

/backport to release/7.0

@github-actions
Copy link
Contributor

Started backporting to release/7.0: https://github.com/dotnet/aspnetcore/actions/runs/3339111224

@amcasey amcasey added area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions and removed area-runtime labels Jun 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants