我最近开始开发 Java EE 应用程序,并且我试图了解更多有关 HTTP 状态代码的信息,以及何时应该使用它们。
我遇到的一个案例是当用户登录并想要检查订单状态时。要求是用户无法检查不属于他们的订单的状态。
查询订单的网址,例如:
mysite.com/order/status?id=22594
处理此请求的 servlet 将检查 ID 参数,然后从数据库中检索订单。
如果用户输入了他们未提交的订单的 ID,返回 403 或回复未找到的订单是否合适?
最佳答案
如果用户没有提交订单,或者订单不属于用户,则返回以下任一响应都是合适的:
- 404- 未找到资源。如果这不会向用户显示 另一个用户的订单 ID 存在。
- 401-Unauthorized。这将显示订单存在,但不属于请求用户。
从安全角度来说,返回404比较好。
关于java - 使用 403 状态代码响应的用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27658148/