Chrome缓存DNS记录,并且在成功连接到我的网站后(除了重新启动),倾向于忽略hosts文件的更改。启用DNS预取后,这种情况更加明显。
是否有任何页面标头可以指示Chrome不要缓存网站的DNS?像Cache-Control
或类似307临时重定向
的响应状态码吗?
Chrome缓存DNS记录,并且在成功连接到我的网站后(除了重新启动),倾向于忽略hosts文件的更改。启用DNS预取后,这种情况更加明显。
是否有任何页面标头可以指示Chrome不要缓存网站的DNS?像Cache-Control
或类似307临时重定向
的响应状态码吗?
我不确定这是否完全符合您的要求,但我也很烦恼在开发环境中切换时需要清除缓存。我偶然发现了这个内部Chrome页面,只需点击按钮即可清除缓存:chrome://net-internals/#dns。进入该页面后,请单击“清除主机缓存”按钮。
编辑 如下面的答案所述,原因是您还需要刷新打开的套接字才能立即生效。在清除DNS缓存后,还需前往:chrome:// net-internals /#sockets并单击“刷新套接字池”按钮。
还请记住,操作系统可能会进行自己的缓存。Linux不会缓存dns条目,我认为(至少对于我来说,清除Chrome缓存就足够了),但是对于Windows或Mac,您可能还需要清除操作系统级别的DNS缓存。对于Windows,请从命令行运行ipconfig / flushdns
,对于Mac,请从命令行运行sudo dscacheutil -flushcache
。
Shift+F5
的功能可以强制刷新DNS,但这个功能还需要在Chrome浏览器中实现。 - Petrus Theron