" EULA的HTTP状态代码未被接受"?

时间:2016-01-11 11:44:13

标签: rest http http-status-codes

我有一个RESTful Web服务,需要最终用户许可协议(EULA)才能被使用。

如果EULA尚未被接受,哪种HTTP状态代码最适合Web服务返回?

目前我看到以下可能性(我当前最喜欢的是粗体):

  • 403 Forbidden
  • 412 Precondition Failed
  • 417期望失败
  • 423已锁定
  • 428需要先决条件#
  • 451因法律原因不可用

3 个答案:

答案 0 :(得分:3)

根据CodeCaster的建议,我访问了w3.org并查看了definitions of HTTP Status Codes in RFC2616。我发现状态码403最合适:

  

10.4.4 403禁止

     

服务器理解请求,但拒绝履行请求。   授权无效,请求不应重复。如果   请求方法不是HEAD,服务器希望公开   为什么请求没有得到满足,它应该描述原因   因为该实体的拒绝。如果服务器不想做   此信息可供客户使用,状态代码404(不是   找到了)可以代替使用。

答案 1 :(得分:0)

消息应该是自我解释的,我的投票也是412 Precondition Failed。

答案 2 :(得分:0)

401未经授权

乔治克鲁尼会说:"还有什么!" 。您在同意EULA后授权人们访问您的服务。他们没有做,所以他们没有被授权(为了符合RFC,验证和重试客户端必须包含WWW-Authenticate标题,但是你必须以某种方式提供该信息,这种方式与其他方式一样好。)

根据不同的想法,您也可以返回指向协议页面的 301 。这种方法背后的原因是4xx代码发出错误信号。但是,尚未同意EULA(除了失败的身份验证)并非真正的错误情况。
它阻止了服务的使用,是的......但是一切都很好......"。