【发布时间】:2015-04-03 07:32:47
【问题描述】:
在经典的基于表单的 web 应用中,如果用户提交的 HTML 表单包含验证错误,假设没有 JavaScript,那么正确的做法是什么?
- 响应 HTTP 200 + 页面内容(包括用户的错误信息)
- 响应 HTTP 400 + 页面内容(包括用户的错误信息)
重要吗?
【问题讨论】:
-
如果不是协议问题,抛出 HTTP 错误代码会很奇怪。如果验证错误,则不属于由于语法错误导致服务器无法理解请求的 400 秒描述。(验证甚至不应该能够运行,服务器不理解请求)。
-
那是 RFC2616,现在已被 RFC7230-RFC7235 淘汰。 RFC7231 提供了更多的边界定义,可以涵盖验证错误。 WebDAV 提供了一个似乎更合适的状态码 422。因此,如果它是一个 API,我会发送 422。对于人们使用的网站,如果您不希望浏览器以不同的“用户友好”方式呈现错误消息,则 200 可能是合适的。
标签: html forms http web http-status-codes