Description
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.
Activity
seankhliao commentedon Jan 16, 2023
is this an issue for http1 and http2 or just http2?
seankhliao commentedon Jan 16, 2023
cc @neild
gopherbot commentedon Jan 22, 2023
Change https://go.dev/cl/463096 mentions this issue:
http2: case insensitive handling for 100-continue