这似乎是一个愚蠢的问题,但我想知道:
- 不强制将用户重定向到 HTTPS的情况下如何部署 HSTS ?
- HTTP 内容如何仍然从与使用 HSTS 的域相同的域中提供?(整个网站或混合内容)
- 为什么会有人这样做?
我正在阅读EFF 网站,看来已经完成了:
我们最近为 eff.org 启用了 HSTS。设置时间不到一个小时,我们找到了一种无需强制将用户重定向到 HTTPS 的方法,因此我们可以明确表示对 HTTPS 访问的偏好,同时仍然使网站在 HTTP 中可用。它就像一个魅力,现在我们的很大一部分用户正在自动使用 HTTPS 访问我们的网站,甚至可能不知道它。
据我所知,HSTS 通过发送 HTTP 标头来工作:
Strict-Transport-Security: max-age=31536000
因此,如果我访问https://example.net/上发送该标头的页面,则在接下来的 31536000 秒内,所有未来对域 example.net 的请求都将使用 HTTPS,如果(响应?)是 HTTP,那么浏览器将显示巨大的红色警告。
有人可以为我澄清一下吗?我对 HSTS 的理解是准确的还是我遗漏了什么?