如果表单提交包含验证错误,我是否应该以 400 错误响应?

Joe*_*Joe 3 html forms http http-status-codes web

在经典的基于表单的 web 应用程序中,如果用户提交包含验证错误的 HTML 表单,假设没有 JavaScript,那么正确的做法是什么?

  1. 响应 HTTP 200 + 页面内容(包括用户的错误信息)
  2. 响应 HTTP 400 + 页面内容(包括用户的错误信息)

有关系吗?

Lit*_*ode 5

您的应用正在与人类对话,而不是与其他机器对话。因此,您应该做正确的事情并以用户友好的方式处理异常。

您的用户不关心 HTTP 返回码,因此您也不应该考虑它。您将业务逻辑问题与 HTTP 协议问题混淆了。

事实上,通过在 Web 浏览器上抛出 400 错误,您只会遇到 Web 浏览器向用户抛出丑陋消息的情况。

如果您正在编写 REST api,那么答案会有所不同。但你不是。