代码之家  ›  专栏  ›  技术社区  ›  b_erb

为将来的资源选择正确的HTTP返回代码

  •  2
  • b_erb  · 技术社区  · 14 年前

    对于不同的场景,我不确定哪种HTTP代码是正确的选择。

    客户机可以使用Put上传实体到预先知道的URI。然后,在服务器上处理实体,这可能需要一些时间(即转码/处理)。如果这样做了,那么该资源在其上载到的URI下是可用的。

    现在,如果客户机在处理完成之前查询资源,我不确定返回哪个HTTP响应代码是正确的。我在找的东西和 410 Gone .由于应用程序体系结构的原因,不同的客户机在处理完成之前会知道URI(至少是上传的客户机)。

    另外,我不想使用WebDAV扩展代码,尽管会有一些有效的扩展代码。

    我有一些初步的想法,但我不知道哪一个最适合:

    • 307 Temporary Redirect 重定向到占位符资源。
    • 405 Method Not Allowed 只允许稍后获取=>客户端不能缓存此答案。
    • 503 Service Unavailable 强调服务器端错误=>对于客户机来说,可能有点不清楚到底出了什么问题。
    • 还有别的主意吗?

    我该选什么?

    3 回复  |  直到 9 年前
        1
  •  3
  •   Mike    14 年前

    您可以返回202个已接受的响应初始Put,然后204个不包含任何get请求的内容,直到表示可用为止。

        2
  •  0
  •   AndiDog    14 年前

    您的用例没有特定的HTTP代码。也许你想用WebDAV的扩展名 423 LOCKED :

    423(锁定)状态代码表示方法的源或目标资源被锁定。

        3
  •  0
  •   thecoshman    9 年前

    返回202和一个响应主体,该响应主体包含一个状态和一个到可以监视状态的资源的链接。

    当有人得到尚未准备好的资源时,使用307进行临时处理。重定向到该监视页。

    这要求客户端了解包含到监控资源链接的实体媒体类型,因此在机器到机器系统中,如果使用HTML,则需要为此创建媒体类型,或者至少创建一些微格式。