【问题标题】:Most appropriate HTTP status code for "job in progress"“作业进行中”的最合适的 HTTP 状态代码
【发布时间】:2013-02-12 03:35:47
【问题描述】:
提供给客户端的最合适的 HTTP 状态代码是什么,以表示“您的请求很好,但仍在进行中;请稍后在完全相同的地方查看。”
例如,假设客户端提交了一个初始请求以启动一个繁重的查询,服务器立即返回一个 URL,客户端可以定期轮询该结果以获取结果。如果客户端在作业完成之前调用此 URL,返回的最合适的 HTTP 状态码是什么?
202 Accepted 将是我的第一个冲动。这是最好的,还是有更好的,在 REST 接口中更符合此目的?
【问题讨论】:
标签:
http
rest
response
httpresponse
http-status-codes
【解决方案1】:
对我来说,202 Accepted 是最好的选择。
请参阅 W3C 网站上的documentation。
10.2.3 202 接受
请求已被接受处理,但处理已
没有完成。请求最终可能会或可能不会被执行
上,因为在实际进行处理时可能不允许这样做。
无法从异步重新发送状态码
像这样的操作。
202 响应是故意不置可否的。其目的是
允许服务器接受对其他进程的请求(可能是
面向批处理的过程,每天只运行一次)
要求用户代理与服务器的连接一直持续到
该过程完成。随此响应返回的实体
应包括请求当前状态的指示和
指向状态监视器的指针或用户何时估计
可以期望请求得到满足。