浏览器应遵循哪个 TTL 属性 使用 CNAME 记录?

Which TTL Property should a browser respect where you use a CNAME record?

我们有一个应用程序,其域具有 CNAME 记录。然后该域具有 A 记录。如果这 2 条记录具有不同的 TTL 属性会怎样?例如。

NAME                   TYPE   VALUE                TTL
----------------------------------------------------------------------
bar.example.com        CNAME  foo.example.com      3600 (60min)
foo.example.com        A      192.0.2.23           30   (30sec) 

在此示例中,如果我点击 bar.example.com,IP 地址将在浏览器中缓存多长时间?我在 chrome 中注意到它会将 IP 地址缓存长达 30 秒,但我想不同的浏览器可能有不同的实现。我想知道是否有标准的方法来实现,或者是否有任何浏览器会使用 60 分钟记录。我似乎找不到任何关于此的文档。

没有对 CNAME 资源记录的 TTL 进行特殊处理。在一个完美的世界里,浏览器应该根据它的 TTL 记住每条记录。

也就是说,如果发布了指向 baz.example.combar.example.com 的新 CNAME,浏览器仍然可以使用指向 foo.example.com 的旧 CNAME 长达 3600 秒。在任何时候,它都无法记住与名称关联的 IP 地址 foo.example.com 超过 30 秒。

虽然我没有尝试检查,但我怀疑许多实现并不那么挑剔,我的猜测是对整个 bar.example.com -> 使用最终 A 记录的 TTL 是很常见的192.0.2.23步。