Skip to content

Commit 1d687d4

Browse files
committed
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 <[email protected]> Run-TryBot: Damien Neil <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Ian Lance Taylor <[email protected]>
1 parent 2e3eb7b commit 1d687d4

File tree

3 files changed

+123
-371
lines changed

3 files changed

+123
-371
lines changed

0 commit comments

Comments
 (0)