400 Bad Request

HTTP 400 Bad Request 客户端错误响应状态码表示服务器由于被认为是客户端错误的问题而无法处理请求。400 响应的原因通常是由于格式错误的请求语法、无效的请求消息帧或欺骗性的请求路由。

收到 400 响应的客户端应预期,如果不修改请求就重复请求,将以相同的错误失败。

状态

http
400 Bad Request

示例

格式错误的请求语法

假设存在一个 REST API,其端点用于管理用户,地址为 http://example.com/users,并且一个带有以下主体的 POST 请求尝试创建一个用户,但使用了包含未转义换行符的无效 JSON

http
POST /users HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 38

{
  "email": "b@example.com
",
  "username": "b.smith"
}

如果内容是有效格式,我们应该会收到 201 Created 响应或另一个成功消息,但服务器 instead 响应 400,并且响应主体包含一个带有上下文的 message 字段,以便客户端可以使用格式正确的请求重试该操作

http
HTTP/1.1 400 Bad Request
Content-Type: application/json
Content-Length: 71

{
  "error": "Bad request",
  "message": "Request body could not be read properly.",
}

规范

规范
HTTP 语义
# status.400

另见