15

向客户端提供的最合适的 HTTP 状态代码是什么,以表示“您的请求很好,但仍在进行中;请稍后在完全相同的地方查看。”

例如,假设客户端提交了一个初始请求以启动一个繁重的查询,服务器立即返回一个 URL,客户端可以定期轮询该 URL 以获取结果。如果客户端在作业完成之前调用此 URL,那么返回的最合适的 HTTP 状态代码是什么?

202 接受将是我的第一个冲动。这是最好的,还是有更好的,在 REST 接口中更符合此目的?

4

1 回答 1

26

对我来说,202 Accepted是最好的选择。

请参阅W3C 网站上的文档。

10.2.3 202 接受

请求已被接受处理,但处理尚未完成。该请求最终可能会或可能不会被执行,因为在实际进行处理时它可能会被禁止。无法从诸如此类的异步操作中重新发送状态代码。

202 响应是故意不置可否的。它的目的是允许服务器接受对其他进程的请求(可能是一个每天只运行一次的面向批处理的进程),而不需要用户代理与服务器的连接持续到进程完成。与此响应一起返回的实体应该包括请求当前状态的指示以及指向状态监视器的指针或用户可以期望何时完成请求的一些估计。

于 2013-02-12T03:41:08.173 回答