要求客户端重做操作的适当 HTTP 状态代码是什么

问题描述 投票:0回答:1

我的 Web 应用程序上有一个端点,它从客户端获取数据,一旦收集到足够的数据,就会执行操作。如果这个操作的结果无效,我需要通知客户端必须重做这个操作。

我可以发送带有某种标志的响应,但如果已经存在用于此目的的状态代码,我宁愿使用它。

看一下状态码的定义here,似乎没有一个合适的,但是,如果我只考虑名称而不考虑描述,那么状态码406 Not Acceptable听起来最合适合适的。

http http-status-codes
1个回答
0
投票

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 工作组邮件列表中的人员。

© www.soinside.com 2019 - 2024. All rights reserved.