如何查找并轻松修复 406 错误?

已发表: 2022-06-04

客户端和服务器端可能会发生错误(例如 406 错误),这些通常称为 HTTP 响应或状态代码。 此 HTTP 响应代码称为“406 错误”。

访问网站时,您可能会遇到 406 错误。 如果你有一个网站,情况可能会更糟。 互联网用户可能会觉得这很烦人,但网站或应用程序所有者可能会觉得这绝对是可怕的。 任何 HTTP 响应代码,包括 406 错误,都可能使原本专业的网站看起来不专业且令人困惑。

目录

什么是 406 错误?

“406 Not Acceptable” HTTP 错误消息不像“404 Not Found”错误(通常表明 URL 不存在)甚至 301 或 500 HTTP 问题那样常见。 因此,你不应该期望看到很多这个。

状态代码 406 Not Acceptable 是 HTTP 响应代码。 当用户代理(Web 浏览器)向服务器请求信息时,它们会提供一个 Accept 标头,通知服务器浏览器可以接受哪些数据类型。 如果服务器无法在 Accept 标头中指定的任何编解码器中传输数据,则会返回 406 Not Acceptable 错误。

尽管 406 错误并不常见,但它可能会导致您的网站出现问题。

消息通常是这样的:

不能接受的

在此服务器上找不到所请求资源的适当表示。

最后提到了附加消息或服务器信息,它有时指示问题所在的“请求的资源”。

406 错误是服务器端错误还是客户端错误?

客户端错误是 406 Not Acceptable 状态代码。 它属于 HTTP 响应状态码的 4xx( 4xx 状态码类是针对客户端出现错误的情况)类别,即客户端错误响应。

4xx 类别中的 HTTP 状态代码包括:

  • 400 错误请求
  • 401 未经授权的错误
  • 403 禁止
  • 404 未找到
  • 405 方法不允许
  • 410 走了
  • 429 请求过多
  • 415 不支持的媒体类型

4xx 错误意味着没有找到预期的页面并且请求不完整。 问题是在客户端发生的事情。

它们不同于被视为服务器端故障的 5xx 类别的状态代码。 这些错误不是客户端的错,但它们确实表明服务器端有问题

有时可以将 406 Not Acceptable 错误追溯到服务器。 例如,如果配置错误并错误地处理请求,它可能会导致 406 代码响应和其他严重的流量路由问题。

406错误的原因是什么?

每当您打开网页时,您的浏览器(例如 Safari、Firefox、Brave、Chrome 或 Internet Explorer)都会请求站点文件和内容。 通过与服务器通信,浏览器通知服务器用户想看到什么,并希望服务器回复正确的信息。

当浏览器发送它的第一个请求时,它会通知服务器它可以接受哪些文件类型。 从本质上讲,它是一个 Accept-Header 请求,它告诉服务器以正确的格式交付文件,以便从标头开始生成整个网站或 Web 应用程序。

当服务器的响应格式不正确时,它可能不遵守浏览器或客户端的规则。 此错误表示服务器未交付所需的数据,如 406 错误所示。

在标头请求中,可能存在一些“错误格式”和“违反规则”。 这里有些例子:

  • 接受范围:一些服务器使用安全措施或只允许响应中指定的文件大小限制。 如果答案尝试发送超出允许范围的太多字节,您将收到 406 错误。
  • Accept-encoding:头部的这一部分用于压缩文件,以便它们可以从服务器快速发送到浏览器。 当不接受某些编码方法和格式时会生成 406 错误代码。
  • Accept-language: Accept-language 是 Accept-charset 的昵称,指的是它对全球语言的重视。
  • MIME 类型冲突:浏览器可能偶尔会向服务器询问特定的 MIME 类型。 JPEG 照片、特定视频格式和基本文本是 MIME 类型的示例。 如果服务器无法提供指定的 MIME 类型(例如 JPEG 图像),您将收到 406 错误。
  • Accept-charset:这是一个字符集,描述站点文件表如何将代码(例如 CSS 和 HTML)转换为可读字符。 很难涵盖全球存在的所有字符、语言和符号。 ISO-8859 表是标准,但也有各种补充表。 为了跟上语言和字符的添加,新的字符表会定期发布。

“406 Not Acceptable”错误表明客户端向 Web 服务器提供了合法请求,但该请求包含服务器必须遵守的特殊标准。 初始请求包括 HTTP Accept-header 形式的特殊需求。

这给我们留下了一些可能性或原因:

  • 服务器未提供所需的 MIME 类型或合适的格式,例如 JPEG 或 mp4 视频。
  • 服务器没有提供合适的语言(Accept-language)。
  • 根据接受编码请求,服务器使用了不正确的压缩方法或格式。
  • 服务器返回的字节数过多,与 Accept-ranges 请求不匹配。
  • 服务器未能提供可理解的字符,导致浏览器的 Accept-charset 请求出现问题。

406 错误可能是由其他原因引起的,但并不常见。 前两个比其他两个更普遍,因此您可能应该从调查 MIME 类型违规或接受语言问题的可能性开始。

了解网站文件中的某些内容如何导致问题是网站所有者关于这些格式问题和违规的关键信息。 人为错误,例如输入错误代码、删除重要代码或错误配置服务器,经常会导致此类情况。 当特定的安全设置或法规阻止从服务器传送内容时,就会出现 406 错误。

406错误有哪些预防措施?

406 错误的问题在于它可能出现在各种情况下。

这并不理想,但没有什么是一点故障排除无法解决的。 当您的网站或应用程序上发生 406 错误时,问题就会大得多。

如果它是您的网站,您需要确保它不会再次发生。 插件、主题和人为错误都可能起作用,所以这里有一些额外的建议。

  • 将插件、主题和扩展保持在最低限度。 仅安装必要且信誉良好的元素。
  • 除非您知道自己在做什么并且绝对必须这样做,否则您永远不应该编辑 WordPress 的核心文件。
  • 建议定期执行数据库清理程序和站点优化程序。 我们建议每个月完成此过程,并使用将在后台自动运行的更清洁插件。
  • 调试服务器和 Web 应用程序应该成为一种习惯。
  • 定期备份您的网站或应用程序。 这将防止代码冲突或错误引起过多的焦虑,因为您可以轻松地恢复网站的先前版本。
  • 即使您已经运行了自动备份,在更新 WordPress 和任何插件之前运行您的站点的手动备份。 在编辑任何文件或向您的站点添加新代码之前进行备份也是一个好主意。

如何修复 406 错误?

进入您的 WordPress 网站的文件管理器。 输入publi_html并右键单击.htaccess进行编辑

406 错误

在文件末尾输入以下代码,然后单击保存。 这将解决 406 错误,请注意,要使以下解决方案正常工作,您需要在 LiteSpeed Enterprise 或 Apache 上拥有您的站点,即使在 NGINX 上,以下解决方案也不起作用。

 <IfModule mod_security.c> SecFilterEngineOff SecFilterScanPOSTOff </IfModule>

结论

浏览网站时,您可能会看到 406 错误。 或者,在最坏的情况下,在您的网站上。 虽然它可能会惹恼典型的互联网用户,但对于网站或服务的所有者来说可能是彻头彻尾的恐惧。 任何 HTTP 响应代码,即使是 406 错误,除了看起来不专业和不清楚之外,都可能会失去销售和用户。

有多种方法可以解决 406 错误。 只要您知道所看到的内容以及在哪里寻求解决方案,您就应该能够清除错误。

虽然这不是最常见的 WordPress 问题之一,但如果您的配置不正确,您可能会遇到这种问题。