-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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 #1438
Comments
Need to wait a bit till that standard become stable. Right? |
The standard isn't finalized, but it's close enough to work with. I have some work in progress at https://github.com/bdarnell/tornado_http2. It's in decent shape but it doesn't support flow control yet so it only works for small requests and responses. |
thats awesome! |
@bdarnell that's great. do you need help with specific things? I don't know the standard too well but I've skimmed over it and I know the general idea. |
Not really. The last thing left is flow control but it doesn't really lend itself to being worked on in parallel. |
Thanks, good job!! |
Any news here? I have read the other posts so as far as I understand it will be not done until the protocol is finalized. |
Why so hurry, standard is so far from getting standardized . On Tue, Jul 14, 2015 at 9:55 PM, Ján Sáreník notifications@github.com
|
The standard is finalized (https://tools.ietf.org/html/rfc7540), but I don't have anything else to report. I haven't had time to work on this recently. |
Oops , i must be living under the rocks. when was that? On Wed, Jul 15, 2015 at 12:03 AM, Ben Darnell notifications@github.com
|
Wow, standart is finalized so it would be nice uf this feature has been implemented |
Just noting that Chrome abandoned SPDY for HTTP2 and every iOS 9 application is HTTP/2 by default. @bdarnell I noticed that #525 (comment) references https://github.com/bdarnell/tornado_http2. Is that a full implementation and can you imagine a way to reconcile the two? |
As I said before, the major piece missing from |
@bdarnell do you have a checklist of what parts of the spec have been completed vs. incomplete? I may be able to assist, but it would be useful to know what state you're in? |
No, I don't have a checklist. Off the top of my head, there's flow control and prioritization, and then there's a lot of places in the spec that dictate a certain error-handling behavior that we need to go through and check. |
Looks like flow control made it into the spec? https://tools.ietf.org/html/rfc7540#section-5.2 |
Flow control is now implemented in https://github.com/bdarnell/tornado_http2, so it's ready for more usage and testing. |
I think HTTP/2 is more meaningful with connection reuse & stream multiplexing, especially with lots of API query in same origin. usage: differents:
features:
|
Hello, There are any plans to merge the HTTP/2 support to tornado main branch? Thank you |
I plan to merge the HTTP/2 support into Tornado eventually, but not until it's been proven successful. I haven't heard any reports from people using the tornado_http2 package (positive or negative). Are you using it? Is it working for you? What difference does it make for you whether it's in the master branch or a separate package? |
I haven't try HTTP/2 yet. Busy with our own startup product on pypy + tornado + rethinkdb, actually HTTP2 is really necessary for us. So we will be testing soon. |
Hi all, I've been working on a different approach on an HTTP/2 server using the hyper-h2 library, here's a quick demo. It's not feature complete but I've managed to integrate it with the web framework allowing Any feedback or comments would be most welcome, and of course, thanks for the excellent work on Tornado. |
@bdarnell I have recently attempted to use the tornado_http2 package but it appears the _ServerRequestAdapter is not apart of Tornado anymore so I was unable to spin it up. |
I've updated tornado_http2 to work with (and probably require) tornado 4.5 |
Great, welcome http2 |
will tornado_http2 merge into tornado? |
Maybe someday, but I think it only makes sense to merge http/2 into the main package after it's been proven to be usable and reliable as a separate package. Right now I've only heard from one person other than myself who's even tried |
Many Nodejs frameworks are resupporting HTTP2. |
@bdarnell Hi, I achieved use of httpclient using http2 with curl, libcurl >= 7.43.0 supports multiplexed requests well, just setting up the number of max_clients =) |
I suggest merge http2 into tornado as an experiemntal feature. so we can running tornado as http/1.1 on product environment, and test http/2 on develop environment with a switch easily. In this way, we can accelerate http/2 stable, also keep http/2 with latest tornado base. and get more feedback from community too. |
@lisongmin do you suggest we go down the hyper-h2 feels like it's approaching something that could be called stable from what I could tell, which makes it a tempting option for something usable in tornado in the near-term. I'm interested in pushing the hyper-h2 path forward/helping out if others think it's worth it. |
In fact, they even have a tornado example (using TCPServer): https://python-hyper.org/h2/en/stable/tornado-example.html |
Quart has http/2 support - Tornado is well up to date with modern standards, http/2 would be quite on point imo |
Beside choosing between tornado_http2 and hyper-h2 (btw I'd vote for the latter, hyper-h2 is used by multiple projects and is well-tested, so why implement something so non-trivial from scratch in tornado), there is a 3rd option which IMHO is also very interesting, might even be the best: -> Add ASGI support to tornado. This would fill two needs with one deed. First, it'd allow users of tornado to freely match their webserver with tornado. Of course the webserver also needs to support ASGI, but there are already multiple ones available (daphne, hypercorn, uvicorn). Second advantage of supporting ASGI, and the one relevant for this topic, is that HTTP/2-support then becomes a question not for tornado, but for the ASGI server. Two of the three aforementioned servers support HTTP/2 already, so using them with tornado would automatically add HTTP/2 support to tornado. |
But then you won't be able to use http/2 using tornado alone, correct? |
Only in a sense. Tornado alone would still be your only application framework component. You'd only use it with an external webserver instead of the built-in one. |
How about to move to MagicStack’s httptools? Cons:
Pros:
|
Not necessary,
It would slow on pypy .
…On Tue, Jun 4, 2019 at 6:24 PM Eugene Glybin ***@***.***> wrote:
How about to move to MagicStack’s httptools
<https://github.com/MagicStack/httptools>?
Cons:
- It will require to rewrite current HTTP parsing, but for the best in
my opinion;
- Another external dependency.
Pros:
- Fast async HTTP parsing;
- HTTP/2 support out-of-the-box.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#1438?email_source=notifications&email_token=AADGOFR773EP3CT273TI7SDPYZJWLA5CNFSM4BCAIQ22YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODW4KE4I#issuecomment-498639473>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AADGOFWVGPURRCVBCWB7RZTPYZJWLANCNFSM4BCAIQ2Q>
.
|
so, do you have some progress on it? still waiting. tornado is awesome anyway |
I have no new updates since #1438 (comment) The next step here is for folks in the community to try the implementations that already exist and report back - do they work well and meet your needs? That feedback must come before anything can be considered for merging into Tornado proper. |
i agree with @bdarnell . I haven't had any use of HTTP2 yet. |
It would be nice to see tornado implement http/2, not that AFAIK it's a standard.
The text was updated successfully, but these errors were encountered: