"请等一下"的HTTP响应代码

Chr*_*row 9 rest http httpresponse

如果服务器希望客户端等待一段时间然后再次尝试请求,那么服务器发送的最佳HTTP响应代码是什么?

现在,我正在使用:

409 Conflict
Run Code Online (Sandbox Code Playgroud)

但这感觉不太对劲......

Chr*_*ski 20

根据您希望他们等待的原因,状态代码将有所不同.以4开头的代码表示客户端错误.如果请求正确完成,我将不会使用400代码.以5开头的状态是服务器错误.如果你要求HTTP请求者因为你身边的问题而等待,我会选择503.

我遇到了这个问题,编写一个Web服务来检查文件是否已完成处理.如果完成了.我正在返回200,如果不是我不想给出错误代码.使用以2开头的(成功)会更合适.在这种情况下,最佳标准代码可能是"202 Accepted" HTTP规范将其描述为:

该请求已被接受处理,但处理尚未完成.

  • 在仔细阅读规范说明后,这实际上是我认为的最佳答案. (3认同)

Ale*_*kov 10

您可以使用HTTP RFC中建议的503 +"retry-after"标头 - https://tools.ietf.org/html/rfc2616#section-10.5.4.


Mic*_*tta 7

假设您正在尝试实施限速方案,我会想到两个选项(否则,阿列克谢的建议可能更适用).

  • 429 请求太多

    429状态代码表示用户在给定的时间内发送了太多请求("速率限制").

    响应表示应该包括解释条件的详细信息,并且可以包括一个Retry-After标头,指示在发出新请求之前等待多长时间.

  • 420 增强你的平静,非标准,由Twitter使用,并包括在这里,因为它的名字让我很开心.

    当您受到费率限制时,由版本1搜索和趋势API返回.

  • [列宁娜赫胥黎:“增强你的冷静,约翰斯巴达。”](http://www.imdb.com/title/tt0106697/quotes?qt=qt1535085) (2认同)