我设计的一个宁静的API其中的一些话都是公开通过HTTP,以及一些需要API密钥和密在HTTPS。我在考虑在什么样的回应代码应该发送,如果HTTP请求被送到一个的私人资源。迄今为止唯一的一个跳出我的是 412-前提条件失败, 但标准表示的先决条件是强加给请求者不服务器。

是否有一个适当的反应的代码这个状况还是我只是需要给和做 400?

有帮助吗?

解决方案

最安全的方式力HTTP客户使用HTTPS HTTP严格的运输安全.

以前的共同建议下降的连接,但这 实践中已被删除有利于劫持 (异的网站)。

其他提示

我不能说如果这是由广泛接受的HTTP客户端,但严格来说RFC,服务器应该响应:

HTTP/1.1 426 Upgrade Required
Upgrade: TLS/1.0, HTTP/1.1
Connection: Upgrade

来源:结果 http://tools.ietf.org/html/rfc2817#section-4.2

返回一个 403 与原因短语 “ HTTPS必需” 似乎是一个可行的选择,我用什么。

https://en.wikipedia.org/wiki/HTTP_403

重定向REST API是不是一个好主意,尤其是当你可能不知道,以怎样还是怎样被消耗你的服务。

只需发送重定向到对应的https:URI

<强>更新

在一个错误的答案 - 请参阅下面的注释

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top