safari中http自动跳转https且网站不支持https时,很可能是hsts策略强制缓存所致;可通过终端删除hsts.plist、管理网站数据、清除历史与网站数据、启用开发菜单清空缓存、重置网络设置五种方法解决。

如果您在 Safari 浏览器中输入 HTTP 地址却自动跳转至 HTTPS,且目标网站实际不支持 HTTPS、证书无效或明确需以 HTTP 访问,则很可能是该域名已被 HSTS(HTTP Strict Transport Security)策略强制记录并缓存。HSTS 缓存独立于常规 Cookie 与网页缓存,无法通过普通清理操作清除。以下是针对 macOS 与 iOS 平台的多种底层清理与降级连通修复方法:
一、通过终端删除 HSTS.plist 文件(macOS 系统级根除)
此方法直接移除 Safari 存储的全局 HSTS 策略数据库文件,该文件位于用户配置目录下,是 HSTS 记录的唯一持久化载体。删除后所有被 HSTS 记录的域名将立即失去强制 HTTPS 行为,适用于需彻底解除协议锁定的场景。
1、完全退出 Safari 浏览器,在“活动监视器”中确认 Safari 进程已终止。
2、打开“终端”应用。
3、执行以下命令删除 HSTS 配置文件:sudo rm -f ~/Library/Cookies/HSTS.plist。
4、系统提示输入管理员密码时,键入当前用户登录密码(无可见字符反馈,输完直接按回车)。
5、重新启动 Safari 浏览器,访问原 HTTP 地址验证是否仍跳转。
二、通过 Safari 设置管理网站数据(精准单域清除)
该方式调用 Safari 内置隐私控制模块,可定位并移除指定域名的全部本地存储数据,包括 HSTS 记录、Cookie、localStorage、sessionStorage 及 IndexedDB 数据。不依赖终端,不影响其他网站策略,适合仅需恢复某一个 HTTP 站点连通性的场景。
1、在 macOS 上:点击顶部菜单栏 Safari → 设置 → 隐私 → 点击“管理网站数据…”;在 iOS 上:进入“设置 → Safari 浏览器 → 高级 → 网站数据”。
2、在弹出窗口顶部搜索框中输入目标网站的完整域名,例如 test.local 或 dev.example.com(不含 http:// 或 https://)。
3、在结果列表中找到对应条目,确认其“最后访问时间”与异常发生时间一致。
4、点击该条目右侧的“移除”按钮;如需同时清除主域及其子域(如 api.test.local 和 www.test.local),可按住 Command 键(macOS)或多点选中(iOS)后点击“全部移除”。
三、完全清除历史记录与网站数据(全量覆盖式重置)
此操作同步清空所有域名的 HSTS 缓存、Cookie、本地存储、浏览历史、自动填充数据及 Service Worker 注册信息,适用于 HSTS 异常影响范围广、无法精确定位具体域名,或怀疑存在跨域策略污染的情形。
1、在 macOS 上:点击 Safari 菜单栏中的历史记录 → 清除历史记录… → 时间范围选择“所有历史记录” → 勾选“Cookie 与网站数据” → 点击“清除历史记录”。
2、在 iOS/iPadOS 上:进入“设置 → Safari 浏览器” → 向下滚动并点击红色字体的“清除历史记录与网站数据”。
3、在弹出的确认窗口中,再次点击“清除历史记录与网站数据”执行操作。
4、操作完成后,从应用切换器中完全关闭 Safari(向上滑动移除)再重新启动。
四、启用开发菜单执行深度缓存清空(Mac 专属硬性刷新)
常规清理无法触达 WebKit 内核底层缓存层,而开发菜单中的“清空缓存”指令可绕过 UI 层限制,直接调用 WebCore 缓存管理接口,强制丢弃所有内存与磁盘缓存资源,包括 HSTS 相关运行时状态。
1、打开 Mac 版 Safari,点击顶部菜单栏“Safari”→“设置”→ 切换至“高级”标签页。
2、勾选“在菜单栏中显示‘开发’菜单”。
3、关闭设置窗口,在顶部菜单栏点击新出现的“开发”选项。
4、选择“清空缓存”,等待数秒直至菜单响应恢复正常。
5、进阶操作:直接按下快捷键 Option + Command + E,无需打开菜单即可触发清理。
五、重置网络设置并刷新 DNS 缓存(系统级通道修复)
HSTS 行为虽由浏览器控制,但其初始连接建立依赖系统网络栈。若 DNS 缓存污染、TLS 握手参数异常或代理配置残留,可能导致 Safari 在发起 HTTP 请求前即被系统层拦截或重定向。重置网络设置可还原底层通信参数至出厂默认值。
1、在 iOS 设备上:进入“设置 → 通用 → 传输或还原 iPhone → 还原 → 还原网络设置”;在 macOS 上:打开“终端”,依次执行:sudo dscacheutil -flushcache 与 sudo killall -HUP mDNSResponder。
2、输入设备锁屏密码(iOS)或管理员密码(macOS)确认操作。
3、设备将自动重启(iOS)或命令执行完毕(macOS)。
4、重启完成后,重新连接 Wi-Fi 并手动配置 DNS 为 8.8.8.8 或 1.1.1.1,再测试 HTTP 连通性。










