POST 请求的 HTTP 状态码 202 与 200

Posted

技术标签:

【中文标题】POST 请求的 HTTP 状态码 202 与 200【英文标题】:HTTP Status code 202 vs 200 for a POST request 【发布时间】:2022-01-08 12:48:47 【问题描述】:

我很困惑,我使用 202 状态代码,当我收到来自客户端 (A) 的 POST 请求并且 B 正在处理它时,将输出传递到另一个端点 (C)。 在这种情况下,当 B 收到来自 A 的请求时,我使用 202 状态代码。(我添加了示例消息流。) B 没有向 A 发送任何其他响应。那么使用 202 是正确的还是应该是 200?

我的理解是,我们使用 200 进行 GET 调用,而对于 POST,如果处理未决,我们使用 202。 在这里,我有待处理,我将该输出转发给 C。而不是 A。 所以这是我对使用 202 或 200 的困惑吗?

编辑

如果它是一个回调端点,(例如:在这张图 B 中),有 200 个是否合适?

【问题讨论】:

【参考方案1】:

使用202而不是200的主要目的是让服务器与客户端通信:“据我所知,请求看起来不错。但是,我们还没有完全处理您的请求而且我们不能 100% 确定它会成功”。

因此,如果有人发出请求,服务器会立即响应,然后将请求转发到其他地方,202 对我来说很有意义。如果请求在C 端点失败,A 将太迟A 发现这一点。

如果您以 200 响应,它告诉客户端请求完全成功。

【讨论】:

谢谢..所以我认为在这种情况下使用 202 是合适的,因为在“C”处发生的任何错误都将由不同的渠道(电子邮件等)处理。但是拥有 200 是,我假设将给出完全错误的方面。对于带有响应的 GET 调用 200OK 是合适的,但对于这种情况下的 POST,202 是合适的。如果我错了,请纠正我? 如果是回调端点,(例如:在这张图B中),有200个是否合适?

以上是关于POST 请求的 HTTP 状态码 202 与 200的主要内容,如果未能解决你的问题,请参考以下文章

HTTP错误码

HTTP状态码(响应码)

http常见状态码及其解析

HTTP状态码

HTTP状态码详解2

HTTP状态码