开发验证的好好的功能,提测后经常有测试反应功能有bug。很多原因都是测试切换host没生效造成的,为什么切换host后刷新页面了也没生效呢?
不生效原因:
- Keep-Alive
服务器在响应头设置了 Connection: keep-alive (一般的网页都会设置 keep-alive,保持长连接,避免多次连接产生网络消耗)之后,客户端会跟服务器保持长连接,只要长连接不断开,页面在请求的时候就不会重新解析域名!(Chrome输入chrome://net-internals/#sockets 可以看到保持的长连接,点击按钮 close idle sockets 可以关闭所有的长连接。)
- 存在浏览器 DNS 缓存
- 系统 DNS 缓存
让修改生效:
- 重启浏览器
重启浏览器之后,所有的连接(包括长连接)都会断开,自然就生效了
- 隐私模式打开
因为隐私模式下不会复用 TCP 连接,新开连接的时候,会重新解析 DNS 域名
- 修改后过一会儿
长连接失效,时间不确定,开发者可设置
附录:Chrome浏览器的工具命令,浏览器输入 chrome://about/