-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Closed
Labels
HTTP3Perfarea-networkingIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractionsIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions
Description
Pseudo headers were filtered out of HTTP/2 and HTTP/3 requests with this PR - #36166
Unfortunately, the way they are filtered out - setting the header properties to default removes the bits AND the value - means string reuse no longer happens for those headers. e.g. :authority = localhost:80 allocates localhost:80 for every request.
I think the better way to filter these headers is to add a special method that clears their bits. We do something similar for some response headers:
aspnetcore/src/Servers/Kestrel/shared/KnownHeaders.cs
Lines 1165 to 1168 in 13a4608
| internal void ClearInvalidH2H3Headers() | |
| {{ | |
| _bits &= ~{InvalidH2H3ResponseHeadersBits}; | |
| }} |
Metadata
Metadata
Assignees
Labels
HTTP3Perfarea-networkingIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractionsIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions