代码之家  ›  专栏  ›  技术社区  ›  Ben Crowhurst

错误标识符的最合适HTTP状态代码

  •  0
  • Ben Crowhurst  · 技术社区  · 11 年前

    假设我们有一个接受数字标识符的web服务。无效(非数字)标识符的HTTP状态代码通常是什么?

    有效资源标识符

    要求 :获取 http://service.co.uk/resources/123

    回答 :200好

    有效但未知的资源标识符

    要求 :获取 http://service.co.uk/resources/456

    回答 :404未找到

    资源标识符无效

    要求 :获取 http://service.co.uk/resources/abc

    回答 :400错误请求

    在标识符无效的情况下,404(未找到)准确描述了情况;我们未能找到资源。然而,400(错误请求)给出了未找到资源的原因的指示。

    第2616页

    10.4.1 400错误请求

    由于格式错误,服务器无法理解该请求 语法。客户不应在没有 修改。

    10.4.5 404未找到

    服务器未找到与请求URI匹配的任何内容。不 指示该状况是暂时的还是 永久的如果服务器 通过一些内部可配置机制 资源永久不可用,并且没有转发地址。 此状态代码通常用于服务器不希望 确切地说明请求被拒绝的原因,或者没有其他请求被拒绝 响应是适用的。

    1 回复  |  直到 11 年前
        1
  •  0
  •   Eric Stein    11 年前

    该URL不是语法错误,而是语义错误。它具有正确的语法/结构,但所选的特定标识符没有任何意义。这使得 400 (Bad Request) 一个糟糕的候选人。如果是的话 /123/resources ,您可能会认为它在语法上不正确,但我打赌您的框架将以 404 对于任何未指定的路径。即使两者都适用,您也应该选择更具体的 404 错误这就是我见过的每一个框架所做的。

    而且 RFC 2616 已过期。查看7230到7239以了解最新的迭代。