首页 > 解决方案 > Chrome 中的旧主机地址

问题描述

我正在跟踪我们的 Web 应用程序的一个问题,即我们网站域的 CNAME 记录交换很长时间没有被 Chrome 接收,远远超过了 DNS 记录的 300 秒 TTL。Chrome 检查器网络选项卡中报告的对我们服务器的所有 XHR 请求的远程地址已过时。

如果我将 XHR 请求复制为 curl 并在终端中运行它,那么我可以确认它使用新交换到的域的 IP 地址,正如预期的那样。nslookup 也报告相同的地址,所以我的本地 DNS 缓存似乎很好。

在 Chrome 的 netlog 查看器(弹射器)中,我可以看到我们网站的域在 DNS 缓存中有一个过期的条目,其 TTL 设置为 10 秒。我还可以看到条目过期后发出的请求很好,所以 Chrome 似乎根本没有检查缓存!

奇怪的是,当我刷新 chrome://net-internals/#sockets 上的空闲套接字时,主机解析器确实会作为 SSL 握手的一部分触发,并获取新的 IP 地址。

我的感觉是这是我们的 Web 应用程序正在做一些事情来导致这种奇怪的行为。我检查了我们的另一个网站,但无法重现该问题。我以为我们可能会在某个地方挂起连接,但我们没有使用 websockets,而且我看不到任何其他挂起的网络请求。

非常感谢任何帮助!

标签: networkingbrowserdnsxmlhttprequest

解决方案


Chrome 在本地磁盘缓存中无限缓存 301 重定向。我不确定这是否能解决您的问题,但请通过清除本地磁盘缓存尝试一下。

以下是步骤:

  • 打开开发工具
  • 网络选项卡上选中“禁用缓存”复选框
  • 保持Devtool打开并重新加载页面。

检查 IP 并取消选中复选框上的禁用缓存


推荐阅读