繁体   English   中英

“找不到实体”的哪个 http 状态代码?

[英]Which http status code for 'entity not found'?

/persons?age=18

想象一下搜索没有返回任何结果(意味着:没有找到请求的实体)。

如果我在此处返回404 ,则表明/persons路径可能完全无效。

如果请求通常有效(意味着:路径存在,并且请求参数有效),但仍然没有数据返回,是否有任何可接受的状态代码可以返回?

204也不合适,因为它用于告诉用户“您的请求是 200 OK,但永远不会有对您的请求的响应正文”(例如修改)。

如果请求通常有效(意味着:路径存在,并且请求参数有效),但仍然没有数据返回,是否有任何可接受的状态代码可以返回?

当资源有一个表示时, 200是合适的,即使该表示是一个空列表。

# Request:
GET /persons?age=18

# Response:
200 OK

[]

想想“没有返回任何结果的网络搜索页面”,下载一个空文件。

Jim Webber 2011 年的演讲可能有助于理解这里的观点:状态代码和标头属于“通过网络传输文档”域,而不属于您的域应用程序协议。 特定于您的应用程序的组件应注意响应正文中的消息; 元数据针对正在传输文档的通用组件。

实际上你应该返回 200。找到的实体数不会改变 http 代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM