2016-03-16 2 views
0

Я построил класс, который вычисляет задержку 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-запросу, что делает их более медленными.

Любая подсказка об этом будет действительно полезна.

ответ

0

Я думаю, что результаты верны, так как http://google.com перенаправляет на версию https. Ваш таймер сбрасывается с момента перенаправления и не учитывает DNS, необходимый для DNS-запроса. Возможно, вам стоит попробовать веб-сайты, которые не перенаправляются на https как 9gag.

+0

On 'connection: willSendRequest: redirectResponse:' Я вижу только одно перенаправление, от 'http: // google.com' до' http://www.google.co.uk/?gfe_rd=cr&ei= .. .', но он, похоже, не перенаправляется на https –

+0

, может ли разрыв быть вызван параметрами get в конце URL-адреса? –

+0

Я получаю такое же перенаправление при запуске 'curl', однако curl показывает латентность намного ниже (около 15 мс против 80 мс) –

Смежные вопросы