net/http: make Transport treat 101 as a terminal status
Before CL 116855, Transport would only skip over 100 (expect-continue) responses automatically and treat all other 1xx responses as if they were the final status. CL 116855 made the Transport more spec compliant (ignoring unknown 1xx responses), but broke "101 Switching Protocols" in the process. Since 101 is already in use and defined to not have a following message, treat it as terminal. Note that because the Client/Transport don't support hijacking the underlying Conn, most clients doing a WebSocket or other protocol upgrade are probably using net.Dial + http.ReadResponse instead, which remained unaffected (before & after this CL). The main affect of this CL is to fix tests that were using the Client/Transport to test that a server returns 101, presumably without actually switching to another protocol. Fixes #26161 Change-Id: Ie3cd3a465f948c4d6f7ddf2a6a78a7fb935d0672 Reviewed-on: https://go-review.googlesource.com/121860Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Showing
Please register or sign in to comment