Skip to content

x/net/http2: h2c support #13128

Closed
Closed
@owenthereal

Description

@owenthereal

Currently net/http2 only support h2. According to the HTTP2 spec, it can also run over straight TCP (h2c) instead of TLS. I wonder what's the roadmap for it.

/cc @bradfitz

Activity

bradfitz

bradfitz commented on Nov 2, 2015

@bradfitz
Contributor

We do not plan to support h2c. I don't want to receive bug reports from users who get bitten by transparent proxies messing with h2c. Also, until there's widespread browser support, it's not interesting. I am also not interested in being the chicken or the egg to get browser support going. I'm very happy with the TLS-only situation, and things like https://LetsEncrypt.org/ will make TLS much easier (and automatic) soon.

Ask me again in one year.

bradfitz

bradfitz commented on Nov 2, 2015

@bradfitz
Contributor

But you may be interested in #12737 which is about making some of the golang.org/x/net/http2 innards public, so others can implement h2c on their own, reusing most of the http2 guts. But implementing that bug does not mean the Go standard library or x/net/http2 itself will support h2c. It will only enable other Go packages outside of x/net/http2 to support h2c.

owenthereal

owenthereal commented on Nov 2, 2015

@owenthereal
Author

@bradfitz We serve all our requests over TLS and we do want to serve http2 over TLS. But...we're putting ELB in front of the Go servers which could potentially terminate SSL before hitting it, and there're good reasons to do so, e.g., offloading SSL termination. So the communication between ELB and our Go servers don't have to be on TLS. And this may be a legit use case that you didn't think of.

bradfitz

bradfitz commented on Nov 3, 2015

@bradfitz
Contributor

Yes, specialized protocols inside datacenters is a common and valid use case, but not one that the standard library needs to provide by itself. The specialized protocols that people use inside their datacenters varies a lot (maybe h2c, maybe not). Issue #12737 will make implementing those protocols easier for external packages.

changed the title [-]h2c support for net/http2[/-] [+]x/net/http2: h2c support[/+] on Dec 8, 2015
locked and limited conversation to collaborators on Dec 14, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @bradfitz@owenthereal@gopherbot

        Issue actions

          x/net/http2: h2c support · Issue #13128 · golang/go