代码之家  ›  专栏  ›  技术社区  ›  mko

失败的POST请求使用什么HTTP响应代码?

  •  14
  • mko  · 技术社区  · 7 年前

    当POST请求未成功且请求正文格式正确时,应返回什么HTTP响应代码?

    我认为要么400-错误的请求,但这实际上会告诉用户一个请求的格式很差,要么304-没有修改。

    1 回复  |  直到 7 年前
        1
  •  15
  •   Community noseratio    3 年前

    POST 请求未成功,请求正文的格式是否正确?

    如果您的意思是请求负载的语法有效,但由于无效数据而无法处理,则可以使用 422 :

    11.2. 422 Unprocessable Entity

    这个 422 (不可处理实体)状态代码表示服务器 了解请求实体的内容类型(因此 415 (不支持的媒体类型)状态代码不合适),并且 请求实体的语法正确(因此 400 (请求错误) 状态代码不合适),但无法处理包含的 说明书例如,如果XML 请求正文包含格式良好的(即语法正确的),但 语义错误的XML指令。

    请记住在响应负载中提供良好的描述,解释负载的问题。请参阅 RFC 7807 有关如何在HTTP API中报告问题的详细信息。


    为什么 岗位 “账户余额太低,无法提取5.00美元” .

    对于您的报告中描述的情况 comment , 403 409 更合适。

    6.5.3. 403 Forbidden

    这个 403 (禁止)状态代码表示服务器已理解 请求,但拒绝授权。希望 公开请求被禁止的原因可以描述一下 响应负载中的原因(如果有)。[...]

    6.5.8. 409 Conflict

    这个 409 (冲突)状态代码表示请求无法 由于与目标的当前状态冲突而无法完成 能够解决冲突并重新提交请求。服务器 应该为用户生成包含足够信息的有效负载 认识到冲突的根源。[...]