Skip to content

Pseudo header string reuse broken in .NET 6 #38581

Closed
@JamesNK

Description

@JamesNK

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:

internal void ClearInvalidH2H3Headers()
{{
_bits &= ~{InvalidH2H3ResponseHeadersBits};
}}

@Tratcher @halter73 @wtgodbe

Metadata

Metadata

Assignees

No one assigned

    Labels

    HTTP3Perfarea-networkingIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions