例如,我有一个实际上总是存在的api方法/api/orders.getOrders
。
如果此方法不返回以下格式的数据,我应该发送404或200 http响应代码吗?
{ "orders":[]
}
答案 0 :(得分:7)
200 是正确的。
来自RFC 7231
状态代码的4xx(客户端错误)类表示客户端似乎有错误。
404(未找到)状态代码表示源服务器未找到目标资源的当前表示
在您的情况下,客户端不在要求资源时犯了错误;原始服务器确实找到了资源的当前表示,因此404(实际上,整个4xx类响应)不合适。
204(无内容)状态代码表示服务器已成功完成请求,并且在响应有效负载正文中没有要发送的其他内容。
"没有内容"表示HTTP响应消息体是空的,也就是说返回的表示是0字节长。返回空资源的非空表示时,它不合适。