如何确保所有对API的请求都是通过https?我们是使用.htaccess文件自动重定向到ssl,还是应该拒绝不是通过https的连接并显示错误消息?如果是第二个,那么实现这一目标的最好方法是什么?
发布于 2012-09-14 11:03:02
你应该让你的API用户的生活尽可能的简单--但是对于开发人员来说“容易”通常意味着显式的。
在这些情况下,我强烈倾向于将其视为对前提条件的违反,并抛出错误。如果你的API是RESTful,其中一个超文本传输协议错误就是我喜欢的--例如,一个自定义错误503禁止,自定义文本解释你必须在SSL上连接。
错误地连接到非加密服务端点的开发人员将获得即时、清晰、人类可读的反馈。
我要告诫重定向--重定向作为一种副作用实现了它的目标,当开发人员使用web浏览器连接时可能会很好地工作,而在使用他们的web服务客户端时可能会失败(根据我的经验,并不是所有的重定向都能很好地配合重定向)。
我也更喜欢抛出一个错误而不是简单地不打开HTTP端口/侦听器-连接超时通常需要一段时间,这会导致客户端开发人员认为服务器已关闭,而不是立即意识到错误的根本原因。
https://stackoverflow.com/questions/12423008
复制