Skip to content

x/net/http2: 100-continue handling is case sensitive  #57824

Closed
@shawkins

Description

@shawkins

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions