Разрешение DNS в Chrome / Firefox на целую секунду дольше, чем в Safari - PullRequest
0 голосов
/ 18 января 2019

Коротко: я пытаюсь выяснить основную разницу в том, как Chrome и Firefox выполняют поиск DNS в macOS по сравнению с Safari.

Подробно: у меня есть HTML-страница, которая выполняет AJAX-запрос к случайно сгенерированному (на основе GUID) имени хоста на моем сервере. При загрузке страницы в Chrome или Firefox объект ResourceTiming показывает, что разрешение DNS занимает на целую секунду дольше (примерно 1000 мс), чем в Safari.

Более подробно: что бы это ни вызывало, это происходит только на этом конкретном экземпляре macOS. Даже экземпляр виртуальной машины, работающий на этом же ноутбуке, не имеет проблемы.

Вывод при доступе из Chrome:

Retrieved: 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,
    "requeststart_responseend": 22.200000006705523,
    "starttime_responseend": 1308.000000019092
}

и при доступе из Safari:

Retrieved: 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,
    "requeststart_responseend": 28.000000000000114,
    "starttime_responseend": 358.0000000000001
}

Очевидно, что другие временные параметры различаются сами по себе, но часть domainlookup ResourceTiming - это то, что постоянно отключается на ~ 1000 мс.

Такое чувство, что внутри происходит какой-то тайм-аут, но я не уверен и не знаю, как копать глубже.

Тестовая HTML-страница настроена на https://lax -ns8ds.com / wtf.html , хотя ее запуск сам по себе, скорее всего, ничего не даст (поскольку я сам ее не вижу на любом другая моя машина или экземпляр моей виртуальной машины).

Последняя деталь, о которой я могу подумать: я пытался использовать dtruss, чтобы увидеть, вижу ли я разницу в выполняемых системных вызовах, которая бы подсказала мне разницу между Chrome и Safari, но это не очень далеко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...