0

如何确保对我们 API 的所有请求都是通过 https 进行的?我们是使用 .htaccess 文件自动重定向到 ssl,还是应该直接拒绝不通过 h​​ttps 的连接并显示错误消息?如果是第二个,那么实现这一目标的最佳方法是什么?

4

1 回答 1

3

您应该让 API 用户的生活尽可能轻松——但对于开发人员而言,“轻松”通常意味着明确。

在这些情况下,我的强烈偏好是将其视为违反先决条件,并抛出错误。如果您的 API 是 RESTful,我更喜欢其中一个 HTTP 错误 - 例如自定义错误 503 FORBIDDEN,自定义文本说明您必须在 SSL 上连接。

错误地连接到非加密服务端点的开发人员将获得即时、清晰、可读的反馈。

我会警告不要重定向 - 这会作为副作用实现其目标,并且当开发人员使用 Web 浏览器连接时可能会很好,并且在使用他们的 Web 服务客户端时会失败(根据我的经验,并非所有这些都可以很好地使用重定向)。

我还宁愿抛出一个错误而不是简单地不打开 HTTP 端口/侦听器——连接通常需要一段时间才能超时,这会导致您的客户端开发人员认为服务器已关闭,而不是立即意识到根本原因错误。

于 2012-09-14T11:03:01.560 回答