When iOS 10 came out, we noticed that all HTTP requests are going over HTTP1.1 when routed through the proxy.
It doesn't matter whether the proxy is configured programmatically via parameter in NSURLSessionConfiguration, or configured manually on the device via WiFi proxy settings.
If HTTP2 enabled web host is accessed via any proxied mechanism, all requests end up going over HTTP1.1.
The problem seems to be at a pretty low level - the tcpdump traces that we made on the mirrored port show that when request goes over proxied connection (tunnelled through HTTP CONNECT), the iOS sends a TLS Client Hello request that advertises only HTTP1.1 in ALPN. If request is sent directly to the destination host the TLS Client Hello advertises both HTTP1.1 and H2.
We entered a bug number 28265677 into Apple bug tracking system way back in September 2016. There has been no movement or any response from Apple.
I have tried to follow up through the comment on the bug in March 2017 and got no response again.
I tried iOS 11 beta yesterday, and the issue is still not fixed. I understand that Apple doesn't provide tech support to beta releases, but this issue is not new and appeared first time in iOS 10.0.
Knowing that ths behaviour of iOS hasn't been changed for such a long time, my question is - does Apple consider this behavior a bug or it is intended?
If this is a deliberate policy by Apple not to allow HTTP2 through proxy, we would like to know that.
Best regards,
-Vitaliy