我正在浏览一个高级的,与安全性相关的Ruby on Rails教程,它正在讨论422个HTTP响应,因为客户端提交的请求已经很好地形成但语义无效"。我还看到后一部分呈现为语义错误'或者'语义错误'。
在给出的示例中,这是由于Rails检查了真实性令牌,但我非常感觉HTTP响应还有很多。
我特别感谢来自已建立的社区成员的规范定义,即语义无效/错误/错误'手段。什么是使请求格式良好但在语义上无效的一般规则?
答案 0 :(得分:2)
给出422
(不可处理的实体)状态代码以指示服务器理解请求,但无法处理逻辑。
它可用于表示逻辑问题等内容(例如,您要求过滤无效的日期范围)和验证问题(例如,您没有指定标题 - 这是必需的)。在这种情况下,“语义错误”仅仅意味着“逻辑错误”。
这可以区别于缺少权限(401
或403
更合适)以及通用400
状态,这可能表明服务器无法理解请求(即这是一个格式错误的请求)。
答案 1 :(得分:1)
我在通过邮递员将资源发布到数据库时遇到了这个特殊的语义错误。
在彻底检查我要发送的有效负载之后,我发现Json有效负载的格式与数据库模式所期望的格式不正确。例如,我在有效负载中有一个值作为字符串,而不是字符串数组。后来它成功发布,得到201条回复。