我的 Web 应用程序上有一个端点,它从客户端获取数据,一旦收集到足够的数据,就会执行操作。如果这个操作的结果无效,我需要通知客户端必须重做这个操作。
我可以发送带有某种标志的响应,但如果已经存在用于此目的的状态代码,我宁愿使用它。
看一下状态码的定义here,似乎没有一个合适的,但是,如果我只考虑名称而不考虑描述,那么状态码406 Not Acceptable听起来最合适合适的。
406 Not Acceptable 不合适,因为状态代码用于内容协商:
406(不可接受)状态码表示目标 资源没有当前的表示 根据主动协商,用户代理可以接受 请求中收到的标头字段(第 5.3 节)和服务器 不愿意提供默认表示。 -- https://www.rfc-editor.org/rfc/rfc7231#section-6.5.6
202已接受似乎更好:
202(Accepted)状态码表示请求已被接受 已接受处理,但处理尚未完成。 -- https://www.rfc-editor.org/rfc/rfc7231#section-6.3.3
...但我不确定状态代码的用途是否与您的相符:
202回复是有意不置可否。其目的是 允许服务器接受其他进程的请求(也许是 面向批处理的过程,每天仅运行一次),无需 要求用户代理与服务器的连接持续存在 直到该过程完成。 -- https://www.rfc-editor.org/rfc/rfc7231#section-6.3.3
通常,http 响应不会明确请求用户代理发送附加信息。据我所知,唯一可以执行的状态代码是 401 Unauthorized,它请求授权标头。您可能需要根据您的目的设计自己的状态代码。请咨询 HTTP 工作组邮件列表中的人员。