每当你在地址栏上输入一个URL时,它就会获取相应的IP地址来与Web服务器(可能是任何一种服务器)进行通信。当你重复使用同一个URL时,每次都要获取相应的IP地址,这只是浪费网络资源,因为IP不会经常变化。
所以你的电脑会将域名和IP的组合存储在本地缓存中,以避免每次使用相同的域名(URL)时从域名服务器(DNS)获取。
它还保存着另一个关键信息,叫做 “超时",它说的是IP和域名组合的有效时间,当超时时,你的电脑会从DNS重新获取组合,并再次存储在本地缓存中。
Dns flushing是一种机制,用户可以手动使缓存中的所有条目无效,所以你的电脑在任何时候都会重新获取新的组合,并存储在本地缓存中。
除非你使用的是旧版本的Windows,否则就意味着网站运营者搞砸了。他们把服务移到了一个新的IP地址;在这样做之前,他们应该降低DNS中名称数据的一些超时时间,这样他们就会说 “这个映射的有效期为5分钟",而不是 "这个映射的有效期为第二天"。这需要提前一些时间来做。
例外的是,旧版Windows(到XP? 我忘了)会忽略短于一天的超时时间,反正只记得旧的映射。虽然缓存对超时时间的长短有一个 "下限 "是很常见的,但通常是在 "5分钟 "左右,而不是 "24小时"。这就意味着,一个网站移动IP地址必须在两个不同的IP地址上实际可用那么长的时间。
网站运营者的解决办法是在旧IP地址上运行一个转发 "代理",将流量传递到新IP地址上,持续几天,以便有时间处理愚蠢的过度缓存这一可悲现实。
无论哪种方式,问题都已经被惩罚到你身上了。但大型专业网站不要求你这么做是有原因的–他们自己会解决这个问题。