对错误请求(400)或禁止(403)的关注是什么?

What is the concern about bad request(400) or forbidden(403)?

我正在实现一个提供一些秘密数据的端点,我想建立一个简单的验证机制。当用户没有正确的凭据时,我应该响应哪种状态?

400? 403?或者别的什么?

谢谢。

您应该使用 403,HTTP 状态代码 403 响应是 Web 服务器被配置为拒绝客户端访问所请求资源的结果。

See HTTP 403

如果您打算通过 www-authenticate header 字段进行身份验证,则可以使用 401。如果身份验证信息不正确或丢失,请发送 401。

或者使用403来通知请求的发送者不允许他访问请求内容。根据文档,响应应说明请求被拒绝的原因。 如果您不想这样做,您也可以发送 404。

有关详细信息,请参阅 linked 文档。

w3.org http Protocol

编辑:仅从 link 答案改进。