【问题标题】:Error code for an invalid POST parameter无效 POST 参数的错误代码
【发布时间】:2011-10-20 10:52:04
【问题描述】:

POST 时返回的正确错误代码是什么 请求的参数无效?说:表单需要数据 对于一个事件,但提供的日期是过去的;或一个 表单获取用户注册的数据,但提供的名称 是数字或任何无效的人名。

【问题讨论】:

标签: rfc2616


【解决方案1】:

11.2。 422 无法处理的实体

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

(来自RFC 4918

【讨论】:

    【解决方案2】:

    我个人会选择:400 Bad Request

    错误应该在代表客户端错误的 4xx 范围内,因为传输有效数据是客户端的责任。

    无论如何,您可以查看list of standard HTTP response codes 并选择一个似乎适合您的需求。

    【讨论】:

    • 400 不是为语法错误而保留的吗?无效参数可能无效但语法正确。
    • rfc 说:“由于语法错误,服务器无法理解请求”,但是发送数字而不是日期是一种错误的语法,尽管客户端可以发送请求。具体来说,查询参数可以被认为是请求的一部分,因此会触发一些错误。错误“409 冲突”就是一个很好的例子。
    • 发送数字而不是日期是错误的语法,但发送无效日期代替日期则不是。那我应该用什么?
    • 我们已尝试在 httpbis 中澄清这一点,请参阅 svn.tools.ietf.org/svn/wg/httpbis/draft-ietf-httpbis/latest/…
    猜你喜欢
    • 2018-03-30
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 2022-12-12
    • 2016-05-30
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    相关资源
    最近更新 更多