すでに HTTP/2 をサポートしている Xcode 7 Beta + NSURLSession を試してみましたが、驚くほどうまく機能します。
iOS 9 SDK でビルドされ、iOS 8 をサポートするアプリをリリースすると、iOS 8 ユーザーは HTTP2 を使用できるようになりますか? または、iOS 9 でのみ機能しますか?
すでに HTTP/2 をサポートしている Xcode 7 Beta + NSURLSession を試してみましたが、驚くほどうまく機能します。
iOS 9 SDK でビルドされ、iOS 8 をサポートするアプリをリリースすると、iOS 8 ユーザーは HTTP2 を使用できるようになりますか? または、iOS 9 でのみ機能しますか?
Apple Developers Forum で同じ質問をしたところ、非常に明確な回答が得られました。
HTTP/2 サポートは iOS 9 の一部であるため、以前の OS リリースでは利用できません。
https://forums.developer.apple.com/message/31667
しかし、私を悩ませているのは、iOS 8 の動作です。私はまだあなたの実際の問題に混乱しています。あなたはこの事件について話しているのではないかと思います:
- NSURLSession を使用してアプリを構築する
- HTTP/2 をサポートするサーバーをデプロイする
- iOS 9 では、これは HTTP/2 経由でサーバーと通信します
- iOS 8 では、HTTP/1.1 または SPDY 経由でサーバーと通信します。
- iOS 7 では、これは HTTP/1.1 経由でサーバーと通信します。
これが実際に機能するかどうかは、サーバーによって異なります。今のところ iOS 8 と SPDY を無視して、iOS 7 の場合を考えてみましょう。ここで、iOS は単純に接続を開き、HTTP コマンドを送信します。その場合、サーバーは何をしますか? 正しく処理する必要がありますが、iOS はそれを保証できません。
OTOHさん、あなたの元の質問を文字通り読むと、あなたはこのケースについて尋ねているようです:
- NSURLSession を使用してアプリを構築する
- HTTP/2 をサポートするサーバーをデプロイする
- iOS 9 では、これは HTTP/2 経由でサーバーと通信します
- iOS 8 では、HTTP/2 リクエストを送信しますか?
ここでの答えはノーです。HTTP/2 サポートは iOS 9 の一部であるため、以前の OS リリースでは利用できません。OTOH、iOS 8 は SPDY をサポートしています。詳細については、WWDC 2014 セッション 707 What's New in Foundation Networking を参照してください。