Firefox 如何缓存 DNS 请求/回复?

Firefox 如何缓存 DNS 请求/回复?

我想知道,如果一切顺利,Firefox 缓存会如何将 google.com 表示为其各自的 IP?

答案1

它会短期缓存,但我不知道后端的具体情况。当 DNS 无法解析时,您会看到这种情况,您使用刷新按钮只会发现您很快再次进入“未找到服务器”页面;但是,如果您单击该页面上的“重试”按钮,它会重新查询 DNS 服务器。或者,如果您关闭并重新打开 Firefox,缓存将被清除。

我通过纯粹的实验发现了这一点;最近我做了相当多的 DNS 设置更改。

本文声称“在 Firefox 中,默认情况下,DNS 请求仅缓存 1 分钟。”但日期是 2007 年 8 月,因此现在情况可能已经发生了变化。(见下文)

要控制缓存设置,您可以尝试DNS 缓存扩展或清除 DNS 缓存扩大。

您还可以调整 about:config 设置网络.dnsCacheExpiration手动设置缓存时间;其默认值为 60 秒,确认上述文章。或者网络.dnsCacheEntries控制缓存条目的最大数量。您可能需要自己将这些设置添加到 about:config 页面(新建 > 整数),并将其中一个(或两个)设置为 0 即可禁用缓存。

答案2

2008 年底(2009 年发布),Mozilla 实施DNS 预取或者预解析在 Firefox 3.1 (3.5) 中,讨论和代码更改可在此处找到bugzilla 的错误 453403。从那时起,默认值network.dnsCacheExpiration等于 180 秒,network.dnsCacheEntries等于 400 个条目。这可确保更多的缓存命中,在启用 DNS 预取时尤其有用。以前的值分别为 60 和 20。检查 about:config 中的设置,如果这两个值较旧,请更新它们以获得更好的性能。

查看 Firefox 的代码会发现,该network.dnsCacheExpiration值被转换为整数形式的分钟数,因此例如,此设置中 120-179 范围内的每个值都等于 2 分钟的 TTL。负面记录的缓存时间恰好为 1 分钟(不可配置;硬编码)。

如果你对已被负面缓存的域名执行请求,Firefox 会显示找不到服务器带有“重试”按钮的页面。同时,后台会尝试再次解析域名。这就是为什么当出现短暂问题时,单击“重试”按钮会立即打开网站。

相关内容