Разрешение DNS в Chrome/Firefox на целую секунду дольше, чем в Safari
Коротко: я пытаюсь выяснить основную разницу в том, как Chrome и Firefox выполняют поиск DNS в macOS по сравнению с Safari.
Подробно: у меня есть HTML-страница, которая выполняет AJAX-запрос к случайно сгенерированному (на основе GUID) имени хоста на моем сервере. При загрузке страницы в Chrome или Firefox объект ResourceTiming показывает, что разрешение DNS занимает на целую секунду больше времени (примерно 1000 мс), чем в Safari.
Более подробно: что бы это ни вызывало, это происходит только на этом конкретном экземпляре macOS. Даже экземпляр виртуальной машины, работающий на этом же ноутбуке, не имеет проблемы.
Вывод при доступе из Chrome:
Получено: https://4-7-8a0e8a44-5a51-461f-8f89-36ca7130c503.lax-ns8ds.com { "domainlookupstart_domainlookupend": 1234.699999971781, "connectstart_connectend": 48.79999998956919, "sslstart_connectend": 29.700000013690442, "responsestart_responseend": 0,7999999797903001, "fetchstart_responseend": 1308.000000019092, "orderstart_responseend": 22.200000006705523, "starttime_responseend": 1308.000000019092 }
и при доступе из Safari:
Получено: https://4-7-2ca9fb3f-f43d-4797-8745-cd11d20483af.lax-ns8ds.com { "domainlookupstart_domainlookupend": 216, "connectstart_connectend": 113, "sslstart_connectend": 69.99999999999994, "responsestart_responseend": 1, "fetchstart_responseend": 358.0000000000001, "orderstart_responseend": 28.000000000000114, "starttime_responseend": 358.0000000000001 }
Очевидно, что другие временные параметры различаются сами по себе, но часть ResourceTiming для domainlookup постоянно отключается на ~ 1000 мс.
Такое чувство, что внутри происходит какое-то время, но я не уверен и не знаю, как копать глубже.
Тестовая HTML-страница настроена по адресу https://lax-ns8ds.com/wtf.html, хотя ее запуск сам по себе скорее всего ничего не даст (так как я не вижу ее сам на любой другой машине или экземпляре виртуальной машины моего своя).
Последняя деталь, о которой я могу подумать: я попытался использовать dtruss, чтобы увидеть, смогу ли я увидеть разницу в выполняемых системных вызовах, которая бы подсказала мне разницу между Chrome и Safari, но это не очень далеко.