首页 / SEO book / 技术 SEO / 400 错误请求的原因与修复

什么是 400 Bad Request?定义、原因及修复方法

400 错误请求的原因与修复技术 SEO

400 Bad Request 是指服务器因格式问题或信息缺失而无法处理某个请求。本文说明其常见原因与对应的修复方法。

什么是 400 错误?

400 Bad Request 错误是指浏览器向 Web 服务器发送请求,而服务器无法正确理解或处理该请求。

它是HTTP 响应状态码的一种。以 4xx 开头的状态码通常表示客户端一侧出现了错误——问题来自发起请求的一方(浏览器、应用等)。

服务器用来表示 400 状态码的消息有很多种,包括:

  • 400 Bad Request
  • HTTP 400 Bad Request
  • HTTP Status 400—Bad Request
  • 400 Bad Request Error
  • HTTP Error 400
  • Bad Request: Error 400
  • HTTP Error 400—Bad Request

根据浏览器不同,这个错误看起来大概是这样的:

400 错误请求错误页面,错误被突出显示

下面深入探讨 400 Bad Request 的常见原因以及如何修复它们。

HTTP 400 错误的原因及修复方法

以下是最常见的 400 错误请求原因,以及相应的解决方案:

1. URL 字符串错误或其他无效语法

400 Bad Request 错误最常见的原因之一是 URL 出了问题——比如多余的空格或“&”“%”“#”等特殊字符。

有时,URL 过长或过于复杂。浏览器有字符数限制(例如 Chrome 上 约 2,000 个字符),超出这些限制就可能触发 400 错误。

箭头指向 URL 中导致 400 错误请求的不受支持的特殊字符

错误也可能由 URL 之外违反标准规则的无效语法导致。

这常常发生在请求中的 HTTP 头缺失或错误时,服务器因此无法解读或处理请求。

例如,下面这个 GET 请求(用于向指定资源请求数据)的请求头格式就不正确:

在这种情况下,Host 头缺少了一个冒号。

如何修复

如果你是普通网站访客:

  • 仔细检查 URL:检查 URL,删除任何多余的空格、拼写错误或无效字符

如果你是网站主或开发者:

  • 使用 URL 编码器:如果 URL 包含特殊字符(例如访问名称中带空格的文件,或在“search?term=salt&pepper”这类搜索查询中包含“&”之类的符号),请使用 URL Encoder 把这些字符转换成服务器能正确解读的格式
  • 调试动态生成的 URL:如果你用 API 或脚本自动生成 URL,它可能生成了参数格式错误、字符编码不当或超出长度限制的链接。使用 Postman 的 Link Checker 之类的工具,精确定位是 URL 的哪一部分导致了问题。
  • 使用开发者工具找出错误:如果不确定是什么导致了错误,打开浏览器的开发者控制台(在 Chrome 中按 Ctrl + Shift + I),转到“Network(网络)”标签,尝试发起该请求,然后查找红色的 400 错误。点击它,看看是什么导致了问题。
Chrome 网页开发者工具已打开 Network 标签页并选中 Headers 标签,400 错误请求错误页面的状态代码错误高亮

2. Cookie 损坏或无效

当 Cookie(网站存储在设备上的小型数据文件)过期或损坏时,就可能引发 400 错误。

如何修复

如果你是普通网站访客:

  • 清除 Cookie 或使用无痕模式:清除浏览器缓存,或开启隐私会话以移除现有的 Cookie
  • 停用扩展程序:暂时关闭可能干扰 Cookie 的扩展程序
  • 检查浏览器更新:确保使用的是最新版本,因为过时的浏览器处理 Cookie 的方式可能不同

如果你是网站主或开发者:

  • 检查网站代码:如果你是开发者或网站主,请检查你的 Cookie 实现是否符合当前的标准和安全实践。这意味着 Cookie 需要使用正确的语法、安全设置和域设置(决定哪些网站可以使用该 Cookie 的规则),并保持在 4KB 的大小限制以内。

3. 浏览器扩展程序

浏览器扩展程序可能以某些方式干扰浏览器与网站服务器之间的通信,从而导致 400 Bad Request。

例如,广告拦截器可能阻止网站正常运行所需的脚本加载。或者,隐私类扩展程序可能修改或屏蔽网站正确处理请求所需的 Cookie。

如何修复

  • 停用并逐个检查扩展程序:关闭所有扩展程序,然后一个一个地重新启用,以找出根源,并检查该扩展程序的设置
  • 更新扩展程序:点击浏览器工具栏中的扩展程序图标,然后查找更新选项以获取最新版本。在 Chrome 中,需要打开“开发者模式(Developer mode)”并点击“Update”按钮。
Chrome 扩展程序管理页面,已开启开发者模式,箭头指向“Update”按钮

4. DNS 缓存过时

域名系统(DNS)把域名(如“www.yoursite.com”)转换为 IP 地址(如 192.168.1.1)。

设备会把这些记录存储在其 DNS 缓存中。但如果某个网站的 IP 地址发生变化,这些记录就可能变得过时。

当这种情况发生,而你又访问同一个网站时,计算机会把请求发送到已不存在、早已失效的旧 IP 地址,而不是新的 IP 地址。

如何修复

要移除可能导致 400 错误的过时记录,请刷新 DNS 缓存。

以下是在 Windows 上操作的方法:

打开“开始”菜单,在搜索栏中输入“cmd”。

选中“命令提示符(Command Prompt)”后,点击“以管理员身份运行(Run as Administrator)”。

Windows 11 开始菜单,搜索栏输入“cmd”,高亮命令提示符的 Run as administrator 选项

系统可能会提示是否允许访问,选择“是(Yes)”即可。

在打开的命令提示符窗口中,输入命令“ipconfig /flushdns”并按下“Enter”键。

随后会看到一条消息,确认 DNS 解析器缓存已成功刷新:

管理员模式命令提示符窗口,显示 DNS 解析器缓存刷新命令的成功消息

现在,再次尝试访问该页面,看看问题是否已解决。

5. 服务器问题

有时,400 错误实际上是由服务器引起的。这类情况发生在服务器配置错误、把有效请求误判为无效请求时。

例如,服务器可能被设置成拒绝包含某些词的请求,而它错误地把这些词识别为安全威胁。或者,它可能有与现代浏览器不兼容的过时规则。

如何修复

如果你是普通网站访客:

  • 联系网站主或支持团队报告该问题
  • 稍后再尝试访问该网站,因为临时的服务器问题往往会自行解决

如果你是网站主或开发者:

  • 查看服务器错误日志:检查 Web 服务器日志,了解是什么触发了 400 错误的具体细节
  • 检查配置文件:检查服务器配置文件(如 Apache 的 .htaccess 或 Nginx 的 nginx.conf),查找可能过于严格的错误或规则
  • 调整安全设置:暂时停用或修改 Web 应用防火墙规则,看看它们是否在拦截合法流量
  • 检查服务器资源:确保服务器没有耗尽内存或处理能力,这会使其拒绝原本可以接受的请求
  • 更新服务器软件:确保运行的是最新版本的 Web 服务器软件,以避免可能导致 400 错误的已知漏洞

6. 文件大小限制

出现 400 错误的一个常见原因,是尝试向网站上传的文件过大。

例如,向 WordPress 网站上传超过大小限制的图片、视频或文档文件,就可能导致 400 错误。

在 WordPress 中,你可以通过点击左栏中的“媒体(Media)”>“媒体库(Library,”然后“添加新媒体文件(Add New Media File)”来检查文件大小限制。

然后你会看到类似这样的内容:

WordPress 后台仪表盘,打开媒体库页面,点击 Add New Media File 按钮,并高亮最大上传文件大小限制。

如何修复

把文件大小减小到限制以下,以确保服务器能完成你的请求。

把视频托管在 YouTube 或 Vimeo 上,把音频文件上传到 SoundCloud,或使用 Compress Image 之类的工具压缩图片,从而更容易保持在限制以内。

查找并修复你网站上的 4xx 错误

理想情况下,应在 400 Bad Request 这类错误影响性能、影响网站访客体验之前,就对网站进行审计并发现它们。

Semrush 的网站审计(Site Audit)工具可以帮上忙。

打开该工具,按照配置设置进行操作,然后转到“问题(Issues)”标签页。在搜索栏中输入“4xx”以找到 4xx 错误列表,然后点击这些页面。

Semrush Site Audit 的 Issues 页面,搜索栏中为“4xx”,错误部分显示“4 pages returned 4xx status code”行

你会找到一份受影响页面的列表及其错误码(该工具显示的不只是 400 错误):

返回 4xx 状态码的页面列表

然后,运用本文介绍的方法来修复这些错误。