我应该使用什么HTTP状态代码来处理状态更新?

时间:2018-07-09 23:20:09

标签: http https postman http-status-codes status

我正在构建一个将一组图像发送到自定义服务器进行处理的应用程序。处理过程可能需要几分钟,因此我正在应用程序中实现进度条。通过http get请求更新进度条,该请求返回一个JSON对象,其中包含错误消息,处理状态或处理结果。

成功上传(通过放置请求)后,服务器将以202接受状态进行响应。

如果发生错误,HTTP请求的响应状态为500 Internal Server Error;如果处理未完成,则响应为102处理;如果处理完成且结果可用,则响应为200 Ok。

当我在邮递员中进行测试时,返回“ 102处理”状态时消息的内容被隐藏了,这使我相信我对应该使用的代码误解了。在这些情况下使用的HTTP代码有意义吗?还是应该使用其他代码?

谢谢

1 个答案:

答案 0 :(得分:2)

library(grid) my_plot <- ggplot(mtcars, aes(wt,mpg)) + geom_point() + theme(plot.margin = unit(c(1, 1, 5, 1), "lines")) my_plot grid.text("Here's my footnote! There's so much room for activities.", x = unit(0.55, "npc"), y = unit(0.15, "npc")) 不是“正常”状态码。像100系列中的其他系列一样,它们的行为更像是“中级”状态代码。

当服务器发送102 Processing102时,这意味着客户端将继续等待“真实”状态代码。因此,实际的单个HTTP请求可能会导致以下所有HTTP状态代码的 all

  • 10x
  • 100
  • 102(可能出现多次)
  • 102
  • 103
  • 103(终于得到了真正的“确定”)。

您的用例不是200的适当用法,除非您保持连接打开并发送更多状态代码。许多HTTP客户端没有内置的方式来通知您这些“中间状态”,但有些却可以。

考虑到您正在进行某种轮询,并且您有一个表示“图像状态”的资源(我在想像102之类的东西,可以让该资源返回{{1} },无论是否已处理图像。

以这种方式进行思考,无论图像本身如何,“图像状态”资源始终可用,并且可以返回200。

插件:我为此代码写了blog post