我可以在http 404错误中有更多的语义含义吗?

时间:2013-07-16 14:13:20

标签: python http tornado http-status-codes

我使用模块requests作为客户端和tornado作为服务器实现了客户端 - 服务器接口。我用它来查询数据库,其中一些数据项可能不可用。例如,查询中的作者可能不在那里或书名。

是否有推荐的方式让我的客户知道,缺少什么?像HTTP 404: Author missing或类似的东西?

2 个答案:

答案 0 :(得分:1)

由于HTTP 404响应可以有响应主体,我会将详细的错误消息放在正文中。例如,您可以在响应正文中发送字符串Author Not Found。您也可以使用API​​已经使用的格式发送响应字符串,例如XML,JSON等,以便服务器的每个响应具有相同的基本形状。

将代码404与X Not Found消息一起使用取决于API的结构。如果它是一个RESTful API,其中每个URL对应一个资源,那么如果资源本身缺少,404就是一个不错的选择。如果请求的数据字段丢失,但请求的资源存在,我认为404不是一个好的选择。

答案 1 :(得分:0)

HTTP 404的含义是固定的,请参阅Wikipedia's List of HTTP status codes

您可以选择一个特定的状态代码,以更好地满足您的需求,并添加一些关于传输数据中缺少的内容(请求的方法“文本”,如果我理解文档正确的话)。