我有一个RESTful web服务,它需要最终用户许可协议(EULA)才能被接受,然后才能被使用。
如果EULA尚未被接受,哪个HTTP状态代码最适合web服务返回?
目前,我看到了以下几种可能性(我目前最喜欢的粗体):
发布于 2016-01-13 12:52:06
按照CodeCaster的建议,我访问了w3.org并查看了RFC2616中HTTP状态码的定义。我认为现状守则403是最适当的:
10.4.4 403紫禁城 服务器理解请求,但拒绝满足请求。授权于事无补,不应重复请求。如果请求方法不是HEAD,并且服务器希望公开请求未被满足的原因,则应该在实体中描述拒绝的原因。如果服务器不希望将此信息提供给客户端,则可以使用状态代码404 (未找到)。
发布于 2016-01-11 11:57:28
信息应该是不言自明的,我投的412先决条件也失败了。
发布于 2016-01-11 12:10:58
401未经授权的
就像乔治·克鲁尼说的:“还有什么!”在与EULA达成协议后,您授权用户访问您的服务。他们没有这样做,所以他们没有被授权(要与RFC兼容,验证和重试客户端必须包括WWW-Authenticate头,但无论如何您必须提供这些信息,而且这种方式与任何其他方式一样好)。
在另一个想法上,您也可以返回指向协议页面的301。这种方法背后的理由是,4xx码表示错误条件。但是,还没有同意EULA是一个错误条件(除了一个失败的身份验证)。
这是在阻止服务被使用,是的.但一切都“正常”。
https://stackoverflow.com/questions/34720726
复制相似问题