我网站上的某些页面(身份验证、支付)必须通过 HTTPS 提供。
当客户端通过 HTTP 访问这样的页面时,我想将其重定向到 HTTPS 版本。
目前,我正在使用一个 301 Moved Permanently
代码,其中一个 Location
header 指向相同的 URL,并将方案修改为 HTTPS。
我想知道:是否有使用错误协议(protocol)的特定 HTTP 响应代码?
HTTP 动词类似于 405 Method not allowed
。
最佳答案
不是这样的,不 — 301 永久重定向在这里正是正确的选择。
然而,有这样的事情HTTP Strict Transport Security (HSTS),它允许您一旦您告诉浏览器使用 301 重定向来使用 HTTPS,您还可以告诉它永远不要在您的网站上再次使用未加密的 HTTP 协议(protocol)。您执行此操作的方法是在 HTTPS 响应中包含如下所示的 header (不在重定向中,它通过纯 HTTP 发送):
Strict-Transport-Security: max-age=31536000; includeSubDomains
有关详细信息,请参阅上面链接的维基百科文章和 RFC 6797 .
关于http - 非安全 HTTP 连接的响应代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19283749/