【发布时间】:2016-09-18 06:09:48
【问题描述】:
很明显,某些表单 POST 请求应该导致 4xx HTTP 错误(例如错误的 URL、缺少预期的字段、无法发送 auth cookie),但现有问题 like this 似乎表明 all 无效的表单提交应被视为 4xx HTTP 错误。真的吗?
密码输入错误或不小心遗漏了必填字段在应用程序中非常常见,预计会发生。从任何规范中似乎都不清楚这些应该构成“HTTP 客户端错误”,或者只有在产生永久状态更改的情况下才能将 POST 视为 2xx 成功。
我想我的直觉是,如果服务器向客户端发送一个表单,并且客户端立即使用格式正确的 POST 请求回复该表单,并包含所有预期字段,那么常见的业务逻辑违规不应该是 HTTP错误。
如果通过 JSON-RPC 之类的方式提交表单,情况就更不明确了。 HTTP 只是传输机制,如果函数被成功调用并且响应返回给调用者,应该不会有HTTP 错误。
更罕见的是,某些表单可能会做多项事情,其中一部分可能会成功,而另一部分可能会失败。
理想情况下,IETF 会使用 RFC 来解决这个问题,可能会添加一个 HTTP 错误代码以表示“由于表单失效失败而未执行操作”或扩展 422 的定义以涵盖这一点。
【问题讨论】:
-
你为什么发布这个?写博客。
-
您是在问问题还是试图回答链接的问题?
-
我认为这是一个独特的问题,但让我再看一遍。
-
我重新阅读了您发布的内容,我可能说错了,抱歉。
-
这似乎是反对我提到的帖子的公认答案的论据,所以我应该回答stackoverflow.com/questions/15580969/…。
标签: html forms http http-status-codes http-status-code-422