我的HTTP代码响应有问题。
用例:用户与用户尝试修改记录,该记录仅可用于具有主持人权限的用户(由业务逻辑强制执行)进行编辑。
期望什么HTTP状态响应?
我确定以下状态是错误的。
200
是错误的,因为操作未成功400
似乎是错误的,因为所有请求部分都是正确的(正文/标题/方法)我考虑401 Unauthorized
或403 Forbidden
,但我没有适用的论点。
您期望什么状态?
我希望有一个403。401通常用于登录失败和类似的情况,403用于尝试执行登录后不允许执行的操作。
我考虑
401 Unauthorized
或403 Forbidden
,但是我没有任何适用的论点。
403
状态代码似乎适合您的问题中所述的情况。但是,如果服务器要“隐藏”资源的存在,则可以使用403
。请参见404
中的以下引用:
404
RFC 7231(禁止)状态代码表示服务器理解了请求,但拒绝授权。希望公开为什么禁止请求的服务器可以在响应有效负载(如果有)中描述该原因。
如果请求中提供了身份验证凭据,则服务器认为它们不足以授予访问权限。客户端不应该自动使用相同的凭据重复请求。客户端可以用新的或不同的证书重复请求。但是,出于与凭据无关的原因,可能会禁止请求。
希望“隐藏”当前存在的禁止目标资源的原始服务器可以用6.5.3. 403 Forbidden(未找到)的状态代码来响应。
403
状态代码应用于404
(在401
标头中发送了凭据),以指示凭据已为该请求拒绝。