-
Notifications
You must be signed in to change notification settings - Fork 120
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
should support HTTP/2 #28
Comments
apart from the obvious use-case -- to connect to HTTP/2 web servers -- this library could/should then also be used for swift-nio-apns. |
@artemredkin / @ianpartridge / @tanner0101 should we pull this into the |
I think we can ship |
I’m inclined to agree: it seems more important to enable users to start using the library than to throw HTTP/2 support into the client. |
Same here |
Hi, I took some time and looked into this the last days... I haven't started programming or anything, but I think I should at least document the open questions/ideas I ran into: I think we should go the lazy route (like most browsers except Safari) and first only support http/2 over TLS. The protocol negotiation should be fairly easy this way and we know before sending the first HTTP request, if we will talk HTTP1 or HTTP2 on this connection. I think we should be able to achieve the simpler goal with the current architecture. Is this viable? Further Questions
If you have any other design thoughts in the back of your heads, I'd be happy to know them. 😉 |
I think we should consider plaintext HTTP/2 (h2c) negotiation to be a non-goal. The IETF is considering removing h2c entirely from the next revision of the HTTP/2 RFC as it's essentially non-implemented. Plaintext HTTP/2 is supported, but only in the form of "prior knowledge" negotiation.
Yes.
Only one. The RFC strongly encourages that we do so:
Queue until a stream becomes available. swift-nio-http2 already has this ability.
TBD. Something somewhere needs to know the difference at some point, but whether it's encoded in the type system or not is a decision that needs to be made when we have a more detailed design. |
Work on this has started... |
Fixed by #473 |
HTTP/2 support. Partial example can be found in swift-nio-examples/http2-client. This does HTTP/2 with 'prior knowledge', for this package we also need to support HTTP/2 upgrade
The text was updated successfully, but these errors were encountered: