TrueURL
TrueURL

菜单

400 错误请求

400 Bad Request 错误:由于客户端错误(例如语法格式错误、URL 无效或 Cookie 过大),服务器不会处理该请求。

原因短语
Bad Request
是否重定向
否
默认可缓存
否

400 Bad Request 是通用的客户端错误。服务器认为请求存在某种问题而拒绝处理:语法格式错误、消息帧无效、欺骗性的请求路由、错误的 Host 请求头、无效的查询参数,或者无法解析的请求体。客户端不应原封不动地重复该请求。

许多服务器会对本来有更具体状态码的问题使用 400。例如,当请求头超出缓冲区大小时,nginx 会返回“400 Bad Request: Request Header Or Cookie Too Large”,而 431 会更准确;许多 API 也会对验证错误返回 400,而这些错误本可以使用 422。

要找到真正的原因,通常最好查看响应体。

响应示例

HTTP
HTTP/1.1 400 Bad Request
Date: Fri, 06 Nov 2026 10:15:32 GMT
Server: nginx
Content-Type: text/html
Content-Length: 217
Connection: close

<html>
<head><title>400 Request Header Or Cookie Too Large</title></head>
<body>
<center><h1>400 Bad Request</h1></center>
<center>Request Header Or Cookie Too Large</center>
<hr><center>nginx</center>
</body>
</html>

SEO 与重定向检测

搜索引擎对 400 的处理与其他 4xx 错误相同:该 URL 不会被编入索引,已编入索引的 URL 如果开始返回 400,就会被移除。爬虫发送的是小而标准的请求,不带 Cookie,因此只有爬虫才遇到的 400 通常源于 URL 中的特殊字符或防火墙规则。在重定向检测中,如果重定向链中间出现 400,往往说明某次重定向生成了格式错误的 URL,例如字符被重复编码或查询字符串损坏。

常见原因与使用场景

  • Cookie 过多或过大。清除该网站的 Cookie,或在 nginx 中调大 large_client_header_buffers。
  • URL 格式错误,例如空格未编码、百分号编码损坏,或 Host 请求头无效。
  • API 请求中的 JSON 无效,或缺少必需参数。
  • 向 HTTPS 端口发送了普通 HTTP 请求,nginx 会报告“The plain HTTP request was sent to HTTPS port”。

URL 重定向检测

使用免费的 TrueURL 重定向检测工具,逐跳查看一个 URL 返回的每一个状态码。