http - Chrome 或 FireFox 可以强制 https 请求而不是 http 请求吗?

标签 http google-chrome firefox https

我的情况很奇怪。我在域 example.net 上工作,它的一些页面通过 https 传递,一些通过 http 传递(但也可以使用 https 访问 http 资源)。当我访问页面 http://example.net/page1.html使用 http 协议(protocol)传递 Chrome 执行 HTTP 请求。然后,当我访问 https://example.net/page2.html通过 HTTPS Chrome 执行 HTTPS 请求。到目前为止,一切都应该如此。然后我尝试访问 http://example.net/page1.html通过 HTTP 但 Chrome 执行 HTTPS 请求。

我的第一个想法是 http://example.net/page1.html重定向到 https://example.net/page1.html但这种情况并非如此。以下是我检查过的内容列表:

  • 访问时在 Web 开发人员工具的“网络”选项卡中 http://example.net/page1.html (第二次)我看到 http 请求的条目具有“已完成”状态,发起者列中为“其他”,13 个字节,并在 5 毫秒内完成(对主机的其他请求在 150 毫秒以上的范围内)- 显然 Chrome 取消了要求。请求后跟https://example.net/page1.html请求。
  • 我已经使用 Wireshark 确认在访问 http://example.net/page1.html 时发送到 example.net 服务器的第一个数据包第二次是到端口 443,因此不是服务器执行重定向以强制 https。
  • 切换到“隐私浏览”模式没有帮助,http 请求仍然更改为 https 请求,
  • 我没有安装 HTTPS Everywhere 或任何类似的东西,
  • 清除浏览器历史记录似乎可以解决问题,但我需要弄清楚为什么 Chrome 和 FF 坚持使用 https,
  • 其他网络服务器似乎工作正常,我可以在 http 和 https 之间自由切换,
  • IE 不强制使用 https。

是否有一些新的安全策略、服务器 header 等在浏览器发现服务器响应 https 后强制 Chrome 和 FireFox 强制使用 https?我正在使用最新的 Chrome (33.0.1750.154) 和 FF (28.0)。

最佳答案

事实证明,Web 服务器可以在 HTTPS 响应期间设置一个 header ,以告知浏览器对所有请求强制使用 HTTPS。您可以在这里阅读更多相关信息 HTTP Strict Transport Security

关于http - Chrome 或 FireFox 可以强制 https 请求而不是 http 请求吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22794028/

相关文章:

http - 在全局范围内响应 polymer 中的 401

css - Chrome 没有正确覆盖 flex box 的 justify-content

html - 为什么这个背景图像在 mozilla 中变暗了?

c++ - 如何在 Windows 上编写 C++ FireFox 3 插件(不是扩展)?

c# - 从 C# 访问 Firefox

javascript - 带有 ctrl 键的 Firefox onkeypress

http - 使用 Ga特林 模拟文件下载

html - 创建两个表单以在不使用 JavaScript 的情况下提交正交分布输入

HTTP 服务器随机关闭崩溃

javascript - 大 for 循环挂起 javascript 引擎