commit | 1d687d428aca0546c0ca84160c8700ee521e9fb9 | [log] [tgz] |
---|---|---|
author | Damien Neil <dneil@google.com> | Thu May 19 16:40:57 2022 -0700 |
committer | Damien Neil <dneil@google.com> | Tue May 24 22:04:25 2022 +0000 |
tree | 97b831a66fc2cc314d969b1489f00bbe190d58e3 | |
parent | 2e3eb7b945c2d9c792af7388e297d53078fd9e76 [diff] |
http2/h2c: support direct hand off of h2c-upgrade connections The initial request on an h2c-upgraded connection is written as an HTTP/1 request, with the response sent as an HTTP/2 stream. The h2c package handled this request by constructing a sequence of bytes representing an HTTP/2 stream containing the initial request, prepending those bytes to the remainder of the connection, and presenting that to the HTTP/2 server as if no upgrade had happened. This translation did not handle request bodies. Handling request bodies under this model would be difficult, since it would require also translating the HTTP/2 flow control. Rewrite the h2c upgrade to explicitly hand off the request to the HTTP/2 server instead. Fixes golang/go#52882. Change-Id: I26e0f12e2b1c8b48fd36ba47baea076424983553 Reviewed-on: https://go-review.googlesource.com/c/net/+/407454 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Damien Neil <dneil@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com>
This repository holds supplementary Go networking libraries.
The easiest way to install is to run go get -u golang.org/x/net
. You can also manually git clone the repository to $GOPATH/src/golang.org/x/net
.
This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html. The main issue tracker for the net repository is located at https://github.com/golang/go/issues. Prefix your issue with “x/net:” in the subject line, so it is easy to find.