x/net/http2: 100-continue handling is case sensitive #57824
Labels
FrozenDueToAge
NeedsInvestigation
Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Milestone
What version of Go are you using (
go version
)?This does not appear to be version dependent. At least the go version that is the basis for several kubernetes / openshift releases are affected.
Does this issue reproduce with the latest release?
Yes, it appears to still be an issue: https://github.com/golang/net/blob/7805fdc37dc2b54b28b9d621030e14dcf1dab67c/http2/server.go#L2195
What operating system and processor architecture are you using (
go env
)?N/A
What did you do?
According to https://datatracker.ietf.org/doc/html/rfc7231#section-5.1.1 and the similar issue envoyproxy/envoy#20602 100-continue should not be a case sensitive value.
We have observed that different http clients, send different values for this. In particular the JDK 11 httpclient sends 100-Continue: https://github.com/openjdk/jdk/blob/master/src/java.net.http/share/classes/jdk/internal/net/http/Exchange.java#L536
Thus when using the JDK client to interact with a go server based, this feature does not work as expected.
What did you expect to see?
Case insensitive handling of 100-continue.
What did you see instead?
The JDK client appears to hang as it gets a response it does not understand.
The text was updated successfully, but these errors were encountered: