对 iOS 8 的 HTTP/2 支持
Posted
技术标签:
【中文标题】对 iOS 8 的 HTTP/2 支持【英文标题】:HTTP/2 support for iOS 8 【发布时间】:2015-10-14 17:16:53 【问题描述】:我尝试了 Xcode 7 Beta + NSURLSession,它已经支持 HTTP/2,而且效果非常好。
现在我想知道,当我发布使用 ios 9 SDK 构建但支持 iOS 8 的应用程序时 - iOS 8 用户是否能够使用 HTTP2 ? 还是只适用于 iOS 9?
【问题讨论】:
不,HTTP/2 仅适用于 iOS 9! 我也听说过,但最好有一些证明链接 正如您在Networking with NSURLSession slides on page 35 中看到的那样,HTTP/2 被标记为NEW
。
【参考方案1】:
我在 Apple Developers Forum 上问过同样的问题,他们给出了非常明确的答案:
HTTP/2 支持是 iOS 9 的一部分,因此在 较早的操作系统版本。
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 的一部分,因此 在较早的操作系统版本中不可用。 OTOH,iOS 8 确实有 支持 SPDY。请参阅 WWDC 2014 会议 707 基金会的新功能 网络了解详情。
【讨论】:
【参考方案2】:HTTP/2 supported by iOS 9 + NSURLSession.
NSURLConnection 已弃用。
【讨论】:
以上是关于对 iOS 8 的 HTTP/2 支持的主要内容,如果未能解决你的问题,请参考以下文章