当请求时间过长时使用哪个 HTTP 响应代码?

Which HTTP response code to use when the request takes too long?

我正在构建一个 API 对我们存储的非常大的数据库进行分析。有些请求需要很长时间才能处理。我们想主动中止花费超过 10 分钟的请求,但在我们尝试之前,我们不知道请求是否会花费那么长时间。大多数时候,这不是因为暂时的服务器超载。就是用户提出的请求涉及的数据太多,我们根本无法足够快地完成它。

我已经搜索了 list of standard HTTP response codes,但我找不到非常合适的:

哪个最合适/最不坏?或者还有其他我应该考虑的吗?

如果您想表明这是服务器端错误并且用户可以重试请求 - 使用 5xx

但在你的情况下你似乎想对用户 your query is too big, change it before retrying 说,所以你应该使用 4xx

所以,我会选择 400 Bad Request