当浏览器获取给定主机名(例如 ip1 和 ip2)的多个 A 记录并且其中一个无法访问时,有人可以指导我了解有关确切浏览器行为的信息。
我对确切的细节感兴趣,例如(但不限于):
- 浏览器会从操作系统获得 2 个 IP,还是只会获得一个?
- 浏览器将首先尝试哪个 ip(随机或总是第一个)?现在,假设浏览器以失败的 ip1 启动
- 浏览器会尝试多长时间 ip1 ?
- 如果用户在等待 ip1 时点击“停止”,然后点击刷新
- 当它超时时会发生什么 - 它会开始尝试 ip2 还是给出错误?(如果出现错误,当用户点击刷新时浏览器将尝试哪个 ip)。
- 当用户点击刷新时,任何浏览器都会尝试新的 DNS 查找吗?
现在让我们假设浏览器首先尝试使用 ip2。
- 对于下一个页面请求,浏览器是否仍然使用ip2,或者它可能会随机切换ips?
- 浏览器在其缓存中保留 IP 多长时间?
- 当浏览器发送一个新的 DNS 请求并获得相同的 ips 时,它会继续使用相同的已知正在工作的 IP,还是该过程从头开始,它可能会尝试两者中的任何一个?
当然,这一切都可能取决于浏览器,也可能因版本和平台而异,我很乐意提供最多的细节。
这样做的目的 - 我试图了解当使用基于循环 DNS 并且其中一台主机出现故障时,用户会体验到什么。
拜托,我不是在问 DNS 负载平衡有多糟糕,请不要回答“不要这样做”、“这是一个坏主意”、“您需要心跳/代理/BGP/任何东西”等等。