如何通过https确保对API的所有请求?我们是否使用.htaccess文件自动重定向到ssl,或者我们是否应该通过错误消息拒绝未通过https的连接?如果是第二个,那么最好的方法是什么?
答案 0 :(得分:3)
您应该为API的用户尽可能简单地生活 - 但对于开发人员来说,“简单”通常意味着明确。
我在这些情况下的强烈偏好是将其视为违反先决条件,并抛出错误。如果您的API是RESTful,则其中一个HTTP错误有我的偏好 - 例如自定义错误503 FORBIDDEN,自定义文本说明您必须在SSL上连接。
错误地连接到非加密服务端点的开发人员将获得即时,清晰,人类可读的反馈。
我会警告不要重定向 - 这会实现其作为副作用的目标,并且当开发人员使用Web浏览器连接时可能会正常工作,并且在使用他们的Web服务客户端时会失败(并非所有这些都与重定向相关,在我的经验中)。
我还希望抛出错误而不是打开HTTP端口/监听器 - 连接通常需要一段时间才能超时,这会导致客户端开发人员认为服务器已关闭,而不是立即意识到错误的根本原因。