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.

Activity

seankhliao

seankhliao commented on Jan 16, 2023

@seankhliao
Member

is this an issue for http1 and http2 or just http2?

seankhliao

seankhliao commented on Jan 16, 2023

@seankhliao
Member
added
NeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.
on Jan 16, 2023
added this to the Backlog milestone on Jan 17, 2023
gopherbot

gopherbot commented on Jan 22, 2023

@gopherbot
Contributor

Change https://go.dev/cl/463096 mentions this issue: http2: case insensitive handling for 100-continue

locked and limited conversation to collaborators on Jan 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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

        Participants

        @shawkins@bcmills@gopherbot@seankhliao

        Issue actions

          x/net/http2: 100-continue handling is case sensitive · Issue #57824 · golang/go