開發者發現:在瀏覽器地址欄輸入 https://127.0.0.1:8000 時,Chrome、Firefox 等現代瀏覽器會自動跳轉至其他網址,而 Internet Explorer (IE) 卻能正常停留在該地址。這導致本地開發調試時環境不一致,懷疑是瀏覽器安全策略、緩存或本地代理設置差異導致。
現代瀏覽器內置 HSTS (HTTP Strict Transport Security) 預載入列表。若 127.0.0.1 或相關域名曾被納入列表,瀏覽器會強制將 HTTP 請求升級為 HTTPS,導致跳轉失敗或轉向其他端口。IE 對 HSTS 支持較晚且策略不同,故表現正常。
若之前訪問過該地址並收到過永久重定向 (301),現代瀏覽器會緩存該重定向,下次直接跳轉。IE 的緩存機制較舊,可能不緩存 301,或開發者工具中「禁用緩存」選項生效不同。
系統級代理(如 Fiddler、Charles、VPN 軟件)可能僅對非 IE 瀏覽器生效,或 IE 使用系統代理設置而其他瀏覽器使用自帶代理配置,導致請求被不同方式轉發。
8000 端口可能被其他服務佔用,或開發框架 (如 Django、Vue CLI) 默認綁定 0.0.0.0:8000 但僅響應特定 Host Header,導致非 IE 瀏覽器發送的 Host 不同而被重定向。
chrome://net-internals/#hsts 查詢 127.0.0.1 是否在列表,若是則刪除。localhost 替代 IP:改用 https://localhost:8000,繞過 IP 相關策略。本地開發建議統一使用 localhost 域名,並配置 /etc/hosts (Windows 下 C:\Windows\System32\drivers\etc\hosts) 映射自定義域名(如 dev.local),避免直接使用 IP 地址觸發瀏覽器特殊安全策略。同時,開發環境啟用 HTTPS (如 mkcert 簽發本地憑證) 可消除 HTTP/HTTPS 跳轉不確定性。