twitter-archive / CocoaSPDY

SPDY for iOS and OS X
Apache License 2.0
2.39k stars 233 forks source link

Support HTTP/2 #118

Open kgoodier opened 9 years ago

kgoodier commented 9 years ago

We'd like CocoaSPDY to support HTTP/2, since it is the future and the use of SPDY will likely taper off over time. An implementation here would potentially come earlier than an official Apple version and could provide additional functionality, such as push requests and richer metadata. At present, there are no concrete plans for implementing HTTP/2 in CocoaSPDY, but if there is community interest please indicate it here.

ddeveloperuch commented 9 years ago

It would be great to support HTTP/2, I sure, main browsers and services will be removing support SPDY in favor of HTTP/2 in the near future.

plivesey commented 8 years ago

I'm interested in this. Apple has provided support for HTTP 2 in iOS 9, but as you know @kgoodier, I'm interested in server push which Apple does not seem to support (as far as I can find).

+1 to @griganskiy's comment. It looks like Chrome is removing SPDY early next year from chrome.

Does anyone have an idea of how much work this would take? I've heard the protocols are similar, but am finding it difficult to get a concrete list of differences.

kgoodier commented 8 years ago

You're right, Apple does not support server push with either their SPDY or HTTP/2 implementations. I wouldn't count on that happening either.

I haven't thoroughly costed this, but there are a lot of similarities. That's certainly very helpful, but I suspect the devil will be in the details. Headers and priorities are different and more complex, and there's the issue of getting HPACK in the code. As far as I know, everything else is basically the same or slightly different. It's still a big undertaking and difficult to justify with iOS 9 supporting HTTP/2.

I think the main argument for HTTP/2 in this project is if you don't control your servers, or have an aggressive SPDY deprecation plan to manage tech debt, or expect a large user base on iOS 8 and earlier, but still want push or require rich metadata. I suspect that is a small subset of people. If you control your servers and clients, SPDY is still a viable option and HTTP/2 offers only incremental technical improvements.