我是否应该在仅使用 HTTPS 的服务器的 80 端口上使用 HTTP 代码 301 或 426?

我是否应该在仅使用 HTTPS 的服务器的 80 端口上使用 HTTP 代码 301 或 426?

当用户访问我仅通过 SSL/TLS 端口 80 运行的服务器时,我应该使用 进行通告Upgrade Required (426)还是重定向Moved Permanently (301)

每种方法的缺点和优点是什么?

据我所知,所有现代浏览器都支持 TLS 升级。但是,我发现w3mlynx等不支持; 、 和各种机器人也不curl支持wget

答案1

好像仅当您实际尝试协商 TLS 并且失败时,才会抛出 426。由于用户仅使用 HTTP,我们还不知道他们的 SSL 功能,因此您需要做的是将用户 301 转至 HTTPS,然后如果他们无法处理 TLS,则抛出 426。

相关内容