Closed
Description
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
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 commentedon Nov 2, 2015
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 commentedon Nov 2, 2015
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 commentedon Nov 2, 2015
@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 commentedon Nov 3, 2015
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.
[-]h2c support for net/http2[/-][+]x/net/http2: h2c support[/+]