Я построил класс, который вычисляет задержку http с заданного URL-адреса (обратите внимание, что я не хочу пина ICMP, мне нужно http-латентность).Задержка на iOS - HTTP vs HTTPS
Моя система основана на NSURLConnection
, поэтому, когда метод делегата connection:willSendRequest:redirectResponse:
называется, я Инициализирую NSTimer
(таймер перезапускается, если соединение перенаправляются снова), и как только я получаю звонок connection:didReceiveResponse:
я беру время как латентность.
Насколько я знаю, что должен дать хорошее приближение HTTP латентности, однако результаты весьма далеки от результатов, я получаю запустившего от терминала:
curl -I -o /dev/null -s -w %{time_total}\\n http://google.com
На самом деле, что даже более поздние задержки https на один и тот же сервер (т. е. https://google.com) даже быстрее, чем у HTTP (всего несколько мс, но быстрее). При сравнении результатов латентности https с результатами я получаю curl
с терминала, они довольно близки, однако задержки в работе http, похоже, не работают нормально.
Я запускаю код на iOS 9, позволяя произвольные загрузки, и мне интересно, пытается ли iOS перенаправить или добавить какие-либо накладные расходы к HTTP-запросу, что делает их более медленными.
Любая подсказка об этом будет действительно полезна.
On 'connection: willSendRequest: redirectResponse:' Я вижу только одно перенаправление, от 'http: // google.com' до' http://www.google.co.uk/?gfe_rd=cr&ei= .. .', но он, похоже, не перенаправляется на https –
, может ли разрыв быть вызван параметрами get в конце URL-адреса? –
Я получаю такое же перенаправление при запуске 'curl', однако curl показывает латентность намного ниже (около 15 мс против 80 мс) –