缺少if-match标头的HTTP响应状态

时间:2015-02-26 22:00:31

标签: rest http

我有一个REST-ful服务,它使用ETags和If-Match标头来控制更新。

如果客户端使用If-Match标头提交条件请求,并且ETag过时,我将返回412 Precondition Failed,这似乎是ETag不匹配的推荐方法。

但是如果客户端没有If- *标头提交怎么办?我对412的理解是它适用于客户端的前提条件。由于客户端未提交If-Match标头,因此没有客户端先决条件。但是如果我想要If-Match,我应该使用什么样的响应?

到目前为止,我的想法可能是400 Bad Request或409 Conflict。有没有最好的做法?

1 个答案:

答案 0 :(得分:1)

我认为代码400有点普遍但可以应用。在这种情况下,您需要在响应内容中提供有关问题的更多详细信息。

IMO,如果与资源的当前状态发生冲突,则应使用代码409。我认为在您不使用标题ETagIf-*的情况下自行实施optimitic锁定的情况更多。

我看到代码428(前置条件要求)似乎符合您的需求。

以下页面可为您提供更多详细信息:http://www.restapitutorial.com/httpstatuscodes.html

希望它可以帮到你, 亨利