首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HTTP Status 400验证与验证

HTTP Status 400验证与验证
EN

Stack Overflow用户
提问于 2015-07-09 16:22:54
回答 1查看 4.5K关注 0票数 4

尽管RFC 7231的目的是使其更加清晰,但它显然给状态代码400带来了模糊性。注意这个所以回答和评论。一个人说400现在包含逻辑、应用程序或验证错误,另一个人说400仍然只用于语法或验证错误。

6.5.1.400个错误请求 400 (坏请求)状态代码表示,由于被认为是客户端错误(,格式错误的请求语法、无效的请求消息帧或欺骗性请求路由),服务器不能或不会处理该请求。

我想得到一个更明确的答案。考虑两种情况:一篇文章或一篇文章试图提供一个电子邮件地址:

  • 在请求中找到的电子邮件没有通过验证(例如,它包含"hello#gmail.com")。A 400回复被发送。
  • 在请求中找到的电子邮件失败了verification (例如,另一个用户已经在使用该地址)。A?发送了答复.

我想跟着RFC 7231。我对6.5.1的阅读告诉我,验证错误应该收到一个409 (或422)响应。但其他人不同意,并声称现在应该是400。

有没有人有更多的信息可以解决这种模糊性?

EN

回答 1

Stack Overflow用户

发布于 2015-07-10 01:07:13

在这种情况下发送200是一个很好的状态代码。毕竟,当您没有输入有效的邮政编码时,HTML表单会得到一个4xx吗?

状态代码是用于泛型消费的,而不是特定于应用程序的语义.当非特定的接收者--例如,代理、缓存、HTTP库--能够在进来时做一些有趣的事情时,它们是有用的。

因此,当出现来自客户端问题的错误(如糟糕的请求HTTP语法)时,将使用400。它在7231中变得更通用,因为x00状态代码是它们系列中最通用的,并且在没有定义更具体的状态代码时应该被认为是回退。

您也可以使用400进行验证错误,从理论上讲,这会稍微有所帮助,因为HTTP库知道不会重复该请求--但是如果它是200,肯定不值得太担心。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31323100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档