skipper icon indicating copy to clipboard operation
skipper copied to clipboard

Adds h2c support

Open AlexanderYastrebov opened this issue 2 years ago • 5 comments

Enables HTTP/2 connections over cleartext TCP with Prior Knowledge (RFC 7540 3.4).

The implementation is based on the golang.org/x/net/http2/h2c and workarounds several issues:

  • https://github.com/golang/go/issues/38064
  • https://github.com/golang/go/issues/26682

See h2c package docs for details.

Signed-off-by: Alexander Yastrebov [email protected]

AlexanderYastrebov avatar Oct 01 '21 20:10 AlexanderYastrebov

:+1:

szuecs avatar Oct 14 '21 19:10 szuecs

From my side great first step to support h2c as a server handler!

szuecs avatar Oct 14 '21 19:10 szuecs

From my side great first step to support h2c as a server handler!

any update about h2c ?

tsingson avatar Sep 12 '22 12:09 tsingson

@tsingson I think we should wait for https://github.com/golang/net/pull/139 being merged and released, if not it's not reasonable to have h2c support in Go.

szuecs avatar Sep 12 '22 14:09 szuecs

@tsingson I think we should wait for golang/net#139 being merged and released, if not it's not reasonable to have h2c support in Go.

thanks for update.

tsingson avatar Sep 22 '22 15:09 tsingson

https://go-review.googlesource.com/c/net/+/419181

good news.

tsingson avatar Sep 28 '22 18:09 tsingson

  • https://github.com/golang/go/issues/52882 solves upgrade requests with body so now h2c properly supports both prior knowledge and connection upgrade.
  • https://github.com/golang/net/pull/139 propagates http.Server instance and therefore various timeouts
  • The problem of graceful shutdown is not solved yet (https://github.com/golang/go/issues/26682)

AlexanderYastrebov avatar Jul 12 '23 09:07 AlexanderYastrebov

Closing in favour of #2480

AlexanderYastrebov avatar Jul 24 '23 18:07 AlexanderYastrebov