2010-02-04 54 views
2

我不知道该HTTP代码是一个独特的方案是正确的选择。选择正确的HTTP返回代码为未来的资源

客户端可以通过使用PUT到预先已知URI上传实体。然后,该实体在服务器上处理,这可能需要一些时间(即,转码/处理)。如果这样做,资源在它上传到的URI下可用。

现在我不能确定这是正确的HTTP响应代码返回,如果做处理之前的客户端查询资源。我正在寻找类似于410 Gone的对面。由于应用程序体系结构的原因,不同的客户端在处理完成之前会知道URI(至少是做过上传的客户端)。

此外,我不想使用WebDAV扩展的代码,虽然会有一些有效的。

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

  • 307 Temporary Redirect重定向到占位符资源。
  • 405 Method Not Allowed GET只被允许后=>客户端必须不缓存这个答案。
  • 503 Service Unavailable强调在服务器端错误=>也许对于客户究竟有错有些不清楚。
  • 还有其他想法吗?

我应该选择?

回答

3

你可以返回一个202接受响应初始PUT,然后204无内容任何GET请求,直到表示是可用的。

+0

另外想到的那一个,但是根据RFC2616:“这个响应的主要目的,以允许输入用于行动发生而不引起改变到用户代理的活动文档视图,尽管任何新的或更新的元信息应该被施加到该文档当前处于用户代理的活动视图中。“ 这真的是我想表达的吗? – 2010-02-04 15:50:53

+0

它从无到有,这似乎是有道理的。 – Mike 2010-02-04 15:52:40

0

有您的使用情况下,没有特定的HTTP代码。也许你想使用WebDAV的扩展名423 LOCKED

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

+0

正如我在我的问题中已经写过的,我不想使用WebDAV代码。 – 2010-02-04 15:45:44

0

返回202和一个响应正文,其中包含状态和指向可监视状态的资源的链接。

当有人得到还没有准备好资源,用307来临时。重定向到该监控页面。

这要求客户端了解包含监视资源链接的实体媒体类型,因此,在机器对机器系统中,如果您使用此类系统,您需要为此提供媒体类型或至少使用某种微格式HTML。

相关问题