Chrome / Firefox下的DNS解析比Safari花费整整一秒

时间:2019-01-18 04:04:55

标签: javascript macos google-chrome safari resource-timing-api

简短:我正在尝试找出Chrome和Firefox在macOS上进行DNS查找与Safari如何进行DNS查找之间的根本差异。

详细信息:我有一个HTML页面,该页面对服务器上随机生成的(基于GUID的)主机名进行AJAX请求。在Chrome或Firefox中加载页面时,ResourceTiming对象显示DNS解析比Safari花费了整整一秒的时间(大约1000毫秒)。

更多详细信息:不管是什么原因造成的,它仅在特定的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
}

很明显,其他时间会各自不同,但是ResourceTiming的domainlookup部分通常会相差1000毫秒左右。

感觉内部发生某种超时,但是我不确定,我也不知道该怎么做。

测试HTML页面设置为https://lax-ns8ds.com/wtf.html,尽管您自己运行它可能不会显示任何内容(因为我自己在其他任何计算机或VM实例上都看不到它)。

我可以想到的最后一个细节:我尝试使用dtruss来查看是否可以看到正在进行的系统调用方面的差异,这可以使我对Chrome和Safari之间的差异有所提示,但并没有远。

0 个答案:

没有答案