我正在为我的计算机科学论文构建一个用于动态拼车应用程序的 RESTful 协议(protocol)。
在协议(protocol)中,我还必须正式指定每个操作的 HTTP 状态代码。我遇到了这个“与隐私相关”的问题。假设如下:
GET/api/persons/angela/location
检索用户“angela”的当前位置。 显然不是每个人都能获得结果。只有安吉拉本人和可能会接她的司机应该知道。
我无法决定是在此处返回 404 Not Found 还是 401 Forbidden。
有什么提示吗?什么是最好的,为什么?
最佳答案
根据 Wikipedia (和 RFC 2616 ),当页面存在但需要身份验证时使用 401 代码; 403 用于验证不会改变任何内容的页面。 (在野外,403 通常意味着对某事的权限错误,而 401 将提示用户输入用户名/密码)。 404 表示文档根本不存在。
在您的情况下,401 似乎是最合适的代码,因为有一些方法可以对有权访问该页面的用户进行身份验证。
关于http - 当资源可用但由于权限而无法访问时更正 HTTP 状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3547474/