Ich habe HTTP/2 auf einem Jetty 9.3 Server konfiguriert, es hat ein gültiges Zertifikat und SSLLabs.com hat eine Sicherheitskonfiguration der Stufe A.NSURLConnection auf iOS 9 verwendet kein HTTP/2 Protokoll
die richtige Antwort mit Chrome auf https://example.com Lasten surfen, auch die Berichterstattung, dass „h2“ (HTTP/2") Protokoll verwendet wurde.
Aber wenn die gleiche URL von iOS 9 mit NSURLConnection
, zuzugreifen versuchen I sieht in dem Anforderungsprotokoll, dass es HTTP verwendet 1.1 anstelle Wenn ich HTTP 1.1 auf meinem Server zu deaktivieren, wird die Anforderung auf iOS 9 scheitern (aber immer noch erfolgreich auf Chrome)
NSURLConnection Code -..
let url = NSURL(string: "https://example.com")
request = NSURLRequest(URL: url, cachePolicy: NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData, timeoutInterval: 10)
connection = NSURLConnection(request: request, delegate: self, startImmediately: true)
Server ALPN Debug-Ausgabe -
[S] ALPN protocols [spdy/3.1, spdy/3, http/1.1] received from client for 1e5e2487[SSLEngine[hostname=3.4.5.6 port=52090] SSL_NULL_WITH_NULL_NULL]
[S] ALPN protocol 'http/1.1' selected for 1e5e2487[SSLEngine[hostname=3.4.5.6 port=52090] SSL_NULL_WITH_NULL_NULL]
In WWDC 2015 wurde festgestellt, dass NSURLRequest in iOS 9 unterstützt HTTP/2, aber die Client-Anwendung behauptet spdy/3.1, spdy/3, http/1.1
zu unterstützen, keine http/2
. Es gibt keine NSAppTransportSecurity
Ausnahmen.
Ich habe versucht, eine Verbindung zum Server Safari auf dem gleichen iPhone Simulator mit der App ausgeführt wird, dieses Mal ist es funktionierte und gebrauchte HTTP/2, hier ist ALPN Debug-Ausgabe -
[S] ALPN protocols [h2, h2-16, h2-15, h2-14, spdy/3.1, spdy/3, http/1.1] received from client for 7b50217d[SSLEngine[hostname=3.4.5.6 port=52247] SSL_NULL_WITH_NULL_NULL]
[S] ALPN protocol 'h2' selected for 7b50217d[SSLEngine[hostname=3.4.5.6 port=52247] SSL_NULL_WITH_NULL_NULL]
Irgendwelche Ideen, warum es nicht funktioniert Verwenden Sie HTTP/2 aus der App heraus?
Es ist nur von 'NSURLSession' unterstützt. – HAS
Korrigieren Sie dies als die Antwort. :) – Kof