如果输入违反了我的约定,我应该发送 400 错误吗?
Posted
技术标签:
【中文标题】如果输入违反了我的约定,我应该发送 400 错误吗?【英文标题】:Should I send 400 errors if the input breaks my convention? 【发布时间】:2014-04-28 05:08:32 【问题描述】:在 Web 编程中,在 AJAX 系统中,如果我为 POST 输入数据设置了自己的约定,而客户端违反了约定,例如,如果我坚持使用 JSON 输入并且客户端发送非 JSON 或损坏的 JSON,发送 400 错误状态是否正确?或者除了实际的 HTTP 协议错误,我不应该使用它吗?我看过the RFC,上面写着
10.4.1 400 错误请求
由于格式错误,服务器无法理解请求 句法。客户端不应该重复请求 修改。
但是,它实际上并没有说明什么是“格式错误的语法”、HTTP 语法或“我自己的语法”。
请注意,这不是关于 JSON 的问题,我以它为例。
【问题讨论】:
【参考方案1】:您引用的 RFC 已过时。看看http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p2-semantics-26.html#status.400。
话虽如此,可能对您有用的更具体的状态代码是 422。
【讨论】:
以上是关于如果输入违反了我的约定,我应该发送 400 错误吗?的主要内容,如果未能解决你的问题,请参考以下文章
Apollo + React 在执行突变时给了我 400 错误。可能的 httpLink 错误