開發驗證的好好的功能,提測后經常有測試反應功能有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/