Open Tratcher opened 3 years ago
Three different SOAP actions? Thank goodness we all moved to REST 😈
Hehe, the initial data was case sensitive. I've removed the duplicates.
DNT
is in the Kestrel headers but a bit pointless now as its obsolete and think only IE sends it?
Another area is could HTTP/2 and HTTP/1.x headers be split into different objects (don't know if the gprc headers are HTTP/2 only? /cc @JamesNK ) but :method
, :path
, :scheme
and :status
are HTTP/2 headers only and some HTTP/1.x headers are disallowed on HTTP/2 so don't need to have reserved spots in its collection.
Another area is could HTTP/2 and HTTP/1.x headers be split into different objects (don't know if the gprc headers are HTTP/2 only? /cc @JamesNK ) but :method, :path, :scheme and :status are HTTP/2 headers only and some HTTP/1.x headers are disallowed on HTTP/2 so don't need to have reserved spots in its collection.
This idea I like.
DNT isn't necessary, nothing cares about it any more.
https://github.com/dotnet/aspnetcore/issues/30417 already covers removing the HTTP/2 pseudo headers from the collection. I think we'd want to intercept them in OnHeader before they are even added to the collection and divert them to their own fields.
DNT isn't necessary, nothing cares about it any more.
PR to remove DNT while deciding on others https://github.com/dotnet/aspnetcore/pull/31493
don't know if the gprc headers are HTTP/2 only? /cc @JamesNK
grpc headers could be used in HTTP/1.1 with gRPC-Web, but optimizing gRPC-Web isn't a priority.
Moved some of the common headers to either Request or Response https://github.com/dotnet/aspnetcore/pull/31495
Thanks for contacting us.
We're moving this issue to the Next sprint planning
milestone for future evaluation / consideration. Because it's not immediately obvious that this is a bug in our framework, we would like to keep this around to collect more feedback, which can later help us determine the impact of it. We will re-evaluate this issue, during our next planning meeting(s).
If we later determine, that the issue has no community involvement, or it's very rare and low-impact issue, we will close it - so that the team can focus on more important and high impact issues.
To learn more about what to expect next and how this issue will be handled you can read more about our triage process here.
Thanks for contacting us.
We're moving this issue to the .NET 8 Planning
milestone for future evaluation / consideration. We would like to keep this around to collect more feedback, which can help us with prioritizing this work. We will re-evaluate this issue, during our next planning meeting(s).
If we later determine, that the issue has no community involvement, or it's very rare and low-impact issue, we will close it - so that the team can focus on more important and high impact issues.
To learn more about what to expect next and how this issue will be handled you can read more about our triage process here.
Related to (#31374) @halter73 @benaadams @davidfowl
Kestrel has a fancy KnownHeaders collection for efficient handling of common request and response headers. https://github.com/dotnet/aspnetcore/blob/bc1ff6a45949c3debc483aae93abd0dfdf97bec1/src/Servers/Kestrel/shared/KnownHeaders.cs#L16-L31
These lists have grown organically and should be revisited. We don't want to add too many entries since it makes the types consume more memory, but we do want to ensure most common headers are represented so we can avoid the slow path.
I've compared the current lists with headers customers have reported seeing in production. Here are some of the discrepancies:
Defined in commonHeaders, but only applies to responses? https://tools.ietf.org/html/rfc7231#section-7.4.1Defined in commonHeaders, but mainly used on responsesDefined in commonHeaders, but mainly used on responsesDefined in commonHeaders, but mainly used on responsesDefined in commonHeaders, but mainly used on responsesDefined in commonHeaders, but only applies to responses? https://tools.ietf.org/html/rfc7233#section-4.2Defined in commonHeaders, but mainly used on responsesDefined in commonHeaders, but mainly used on responses