-
Notifications
You must be signed in to change notification settings - Fork 197
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HTTP/2 support #279
Comments
Added a nice podcast about HTTP2 |
Making some notes as I go through the spec... Section 3 describes the 3 ways a client/server can establish an HTTP/2 connection:
This uses the HTTP/1.1 Upgrade mechanism to switch from HTTP/1.1 to HTTP/2 mid-connection. This seems like the most complicated setup from the server perspective because it has to "talk" both HTTP/1.1 and HTTP/2 over the same connection.
The spec requires that HTTP/2 of TLS must negotiate the protocol using the TLS ALPN extension. The SslStream API used by the Suave DefaultTlsProvider does not provide ALPN support at this time: The OpenSSL TLS provider in Suave does not look like it has ALPN support, but it may be possible to build it on top of OpenSSL APIs.
If the client knows that the server supports HTTP/2 through outside means, it can immediately start talking the protocol through a clear-text TCP connection. This should be the most straight-forward to implement for a server, as it could listen on a port specifically intended for HTTP/2 connections. The spec only supports this method of protocol version identification for clear-text connections, and not for HTTP/2 over TLS. |
The text was updated successfully, but these errors were encountered: