服务器状态无效时要发送的 HTTP 状态代码?

Http status code to send if server state invalid?

我正在编写 REST 服务,一些推送请求仅在特定的 window 时间内有效。例如在活跃的工作时间。在这些时间之外,服务器将发送错误。

我查看了可用的 HTTP 状态代码,但不确定哪个最适合申请 'invalid server state' 或同等情况。我正在考虑 400(错误请求)或 422(无法处理的实体)?

对于422,我的definition是"The request was well-formed but was unable to be followed due to semantic errors.",不知道这是否真的是最适用的情况?

400 Bad Request 看起来是对我的正确回应。肯定是客户端错误,但是请求本身没有问题;只是请求的时间。如果响应正文包含一些附加信息以明确说明(按照 "Our offices are closed. Please make your request between the hours of 9 AM and 5 PM GMT, Monday to Friday." 行),那么您已经以适当的方式成功地使用了简单且通用的响应类型。这是一个很好的 API.

作为补充说明;我会说 422 不太正确的原因是请求的 含义 很清楚。只是时间问题,没有语义错误。