WebSockets over HTTP2 have been standardized as RFC 8441 and Firefox and Chromium supports that. Thus, I suggest that support is added for Websockets over HTTP2. The server should also be able to specify using HTTP/2 SETTINGS parameter that it supports Websockets over HTTP2.
The text was updated successfully, but these errors were encountered:
Implement the SETTINGS_ENABLE_CONNECT_PROTOCOL SETTINGS
Requires adding an HTTP2 server option to enable the setting
Implement the The Extended CONNECT Method
This requires adding a new field to the requests
o A new pseudo-header field :protocol MAY be included on request
HEADERS indicating the desired protocol to be spoken on the tunnel
created by CONNECT. The pseudo-header field is single valued and
contains a value from the "Hypertext Transfer Protocol (HTTP)
Upgrade Token Registry" located at
and adding the logic to use the field if SETTINGS_ENABLE_CONNECT_PROTOCOL has been received.
I think that this will only require adding a new option on the http2 server to enable the SETTINGS_ENABLE_CONNECT_PROTOCOL option and another one in the client to let the user know if that setting is enable.
Considering the gorilla/websocket library is currently unmaintained, which is causing a lot of concern in the community, I think this is a great opportunity to solidify and complete websocket support in the standard library
My main concern is that golang seems to avoid implementing the CONNECT semantics in the stdlib #22554 (comment), leaving the implementation to the users.
The requirement of the Extended CONNECT Method will require to add new CONNECT semantics (including a new pseudoheader) to the stdlib, I don't know what the golang team think about this 😄