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

时间:2014-04-01 18:32:17

标签: http google-chrome firefox https

我的情况非常奇怪。我正在域example.net上工作,其中一些页面通过https传输,一些通过http传递(但http资源也可以使用https访问)。当我访问使用http协议发送的页面http://example.net/page1.html时,Chrome会执行HTTP请求。然后,当我通过HTTPS访问https://example.net/page2.html时,Chrome会执行HTTPS请求。直到现在一切都应该如此。然后,我尝试通过HTTP访问http://example.net/page1.html,但Chrome会执行HTTPS请求。

我的第一个想法是http://example.net/page1.html重定向到https://example.net/page1.html但事实并非如此。这是我检查的事项列表:

    访问http://example.net/page1.html时,在Web开发者工具的“网络”选项卡中
  • (第二次)我看到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。

是否有一些新的安全策略,服务器标头等强制Chrome和FireFox在浏览器发现服务器响应https后强制执行https?我正在开发最新的Chrome(33.0.1750.154)和FF(28.0)。

1 个答案:

答案 0 :(得分:2)

事实证明,在HTTPS响应期间可以设置标题Web服务器,以告知浏览器在所有请求上强制使用HTTPS。您可以在HTTP Strict Transport Security

了解更多相关信息