- 错误类型:
- HTTP错误
- 错误名称:
- HTTP 406错误码
- 英文名称:
- HTTP 406 Error
- 错误描述:
- 406错误消息中的外观和文本取决于用于访问该网站的网站、主机和浏览器。 406错误可能会揭示错误的来源。其他时候,您可能会发现这是一个简单的“406 Not Acceptable”错误,没有任何信息可以帮助您解决问题。
- 错误变体:
- 406 Not AcceptableAn appropriate representation of the requested resource could not be found on this server
服务器和客户端错误偶尔会发生,我们通常将它们称为HTTP响应或状态代码。 “406 error”或“406 Not Acceptable”错误就是这样一种HTTP响应。
您可能会在访问网站时看到406 error。或者更糟的是,在您的网站上。虽然它可能会激怒普通互联网用户,但对于网站或应用程序所有者来说,它可能是可怕的。除了看起来有些不专业和令人困惑之外,任何HTTP响应代码,包括406 error,都可能失去销售和用户。
本文将解释“406 Not Acceptable”错误的基础知识、原因、修复方法以及将来避免它的步骤。
什么是406错误?
好消息是HTTP错误“406 Not Acceptable”消息并不像404服务器错误(通常表示网页不存在)甚至301或500 HTTP错误那么常见。因此,你绝对不应该看到这个。
尽管这种情况很少见,但406错误仍有可能成为您网站的问题。它通常看起来像这样:
“406 Not Acceptable”消息的一个示例。
该消息通常为:
Not Acceptable
An appropriate representation of the requested resource could not be found on this server.
然后它有时会识别问题所在的“请求的资源”,并在末尾提到其他消息或服务器信息:
一些406错误显示被拒绝的资源
406错误消息中的外观和文本取决于用于访问该网站的网站、主机和浏览器。 406错误可能会揭示错误的来源。其他时候,您可能会发现这是一个简单的“406 Not Acceptable”错误,没有任何信息可以帮助您解决问题。
现在,让我们假设浏览器说的是简单的英语而不是这些神秘的信息。
在这种情况下,浏览器会说这样的话:你好,我是浏览器。我试图显示此网页,但发生了两个问题之一:
- 该网站的服务器向我发送了错误的文件格式,因此我无法接受。
- 该网站的服务器违反了某些设置或安全要求。
因此,请解决违规问题或让服务器使用我接受的文件格式之一。如果您想知道,这里是我知道如何阅读的文件格式。
要是浏览器这么友好就好了!
本质上,服务器与用于呈现 Web 应用程序的浏览器或机器之间存在错误通信。浏览器要么无法读取传入的内容,要么无法验证数据,因为它不符合某些要求。现在我们必须回答一些问题来找出造成这种误解的原因。
是什么导致了406错误?
每次打开网页时,您的浏览器(如 Safari、Firefox、Brave、Chrome 或 Internet Explorer)都会向页面服务器发送请求以获取站点内容和数据库文件。浏览器充当您和服务器之间的信使——它告诉服务器用户想看到什么,并希望返回正确的信息。
在第一个请求期间,浏览器会告诉服务器它可以接受的所有文件格式。它被称为Accept-标头请求,它提示服务器以正确的格式传送文件以生成整个网站或Web应用程序,从头开始。
有时,服务器会发送格式不合适或违反浏览器或客户端计算机规定的规则的回复。在这种情况下,浏览器窗口中会出现406错误,表明服务器没有提供适当的数据。
以下是标头请求中可能出现的“错误格式”和“违反规则”的一些示例:
- Accept-ranges:一些服务器设置了安全措施或只允许响应中的特定文件大小范围。如果响应尝试发送超出允许范围的太多字节,您将看到 406 错误。
- Accept-encoding:这是用于压缩文件的标题区域,因此它们可以快速从服务器移动到浏览器。不接受某些压缩方法和格式,从而呈现 406 错误代码。
- Accept-charset:指字符集或站点文件表如何获取代码(如CSS和HTML )并将其转换为可理解的字符。世界上有太多的字符、语言和符号,很难涵盖所有这些。标准表称为ISO-8859,但也有其他补充表。偶尔会发布新的字符表以跟上语言和字符的添加。
- Accept-language:这通常是Accept-charset的不同名称,它引用了它对国际语言的关注。
- MIME type violation:有时,浏览器会从服务器请求特定的MIME类型。 MIME类型是内容元素,如JPEG图像、特定视频格式或简单文本。如果服务器无法提供请求的MIME类型(如JPEG图像),您将看到406错误。
解决和修复406错误的主要方法是检查Accept-、Request-和Response-标头中的问题的源代码。
查看Accept-和Response-标头的最简单方法是在浏览器中打开一个网页,右键单击并选择Inspect 。
转到Network > Headers以显示来自此网页的所有请求。
右键单击并在浏览器中选择“Inspect”,然后转到“Network”和“Headers”选项卡。
您通常可以从长列表中选择任何请求以查看该特定请求的 Request-和Response-标头。
单击列表中的任何请求以查看诸如Response- 和 Request-标头之类的内容
或者,您可以联系您的Web开发人员以查看源代码。但是,当您拥有用于调试和清理数据库的工具时,检查源代码会容易得多,我们将在本文后面讨论。如前所述,“406 Not Acceptable”错误告诉我们客户端已向服务器发送了有效请求,但该请求包含服务器必须遵循的唯一要求。初始请求中的特殊要求采用HTTP Accept-标头的形式。这给我们留下了一些潜在的原因:
- 服务器未提供请求的MIME类型或正确的格式,如JPEG或mp4视频。
- 服务器没有返回正确的语言 ( Accept-language )。例如,当浏览器要求提供法语时,它可能会以德语返回响应。
- 服务器在响应Accept-encoding请求时使用了错误的压缩方法或格式。
- 服务器发回了太多与Accept-ranges请求不一致的字节。
- 服务器未能提供可理解的字符,这将导致来自浏览器的Accept-charset请求出现问题。
您可能会看到406错误还有其他原因,但它们并不常见。上面的列表是从最常见到最不常见的原因。前两个比其他更频繁地发挥作用,因此您很有可能通常应该专注于排除 MIME 类型违规或Accept-language问题的可能性。
总体而言,网站所有者应该了解这些格式问题和违规行为,了解您网站文件中的某些内容可能会导致问题。此类情况经常因人为错误而发生,例如意外输入错误代码、删除必要代码或错误配置服务器。当特定的安全设置或规则阻止来自服务器的内容传输时,也会出现406错误。
如何修复406错误
在完成解决406错误的任何步骤之前运行网站或应用程序备份是明智的。访问站点的源代码总是有可能导致进一步的问题,因此如果需要,您需要有一个数据库和站点文件备份来恢复。
确保您完成了从数据库到应用程序以及媒体元素到站点文件的所有内容的完整备份。
现在我们对406错误发生的原因有了更深入的了解,是时候讨论解决错误并防止它再次发生的最佳方法了。这些策略包括客户端原因(用户出错或机器工作不正常)、服务器端原因和基于平台的原因,如插件错误。
确保URL正确
我们的第一条建议听起来可能很简单,但它是最快的故障排除选项,并且将重点放在客户端(即您的计算机)的问题上。
在这种情况下,404错误比406错误更有可能发生,但如果网站URL有效,您最终可能会看到“406 Not Acceptable”错误。然而,浏览器转换请求的方式有些奇怪。例如,在URL末尾添加“JSON”或“PHP”可能会被误解为对这些特定格式的请求,即使客户端不需要它们。
要解决此问题,请仔细检查之前使用的导致错误的URL。尝试再次输入它或在网站上选择不同的子域,看看它是否只有一个页面没有呈现。
406消息在技术上被认为是客户端错误代码(即使它通常是平台或服务器问题),因此这是确定客户端是否有问题的第一个操作过程。
重置您的设备和网络
另一个客户端问题偶尔涉及从用户计算机发送到无法满足请求的平台的相同Accept-标头。其中许多平台包括Hulu等面向游戏或媒体的系统或Spotify等音乐市场。
简单来说,您可能会登录Hulu等平台,尝试观看您喜欢的电视节目,并收到406错误消息。在这个例子中,问题几乎总是在客户端。它通常是您用来启动平台的计算机、网络或其他设备。
尽管任何平台都可能发生这种情况,但一些通常报告406错误的平台包括:
- Hulu
- Google Play
- Square Enix Games
- Netflix
- Xbox
- Windows(通常用于游戏)
此列表远非完整,但它可以让您了解406错误可能发生的位置。
媒体和游戏平台很复杂,有很多限制,这些限制取决于您的位置或网络配置。由于所有移动部件,您可能会遇到这样的错误。
尽管我们无法帮助您对每个特定平台进行故障排除,但请考虑执行以下建议并检查错误是否已解决:
- 上网检查您平台服务器的状态。可能只是公司服务器的问题。
- 重新启动您的计算机、游戏系统、流媒体设备或其他机器。
- 断开所有设备与电缆的连接,等待几分钟,然后重新连接所有设备,然后检查错误是否消失。
- 检查应用程序是否正在运行最新版本。另外,查看您的任何机器是否有可用的固件更新。
- 重置您的家庭或办公室网络(通过路由器的 WiFi 或互联网连接)。
- 如果您仍然遇到问题,请考虑从无线网络切换到有线网络连接。
- 尽管这并不总是可能的,但请考虑使用完全不同的机器复制错误。确保设备在同一网络上。如果您无法复制错误,请查看您的网络和原始机器。
如果所有其他方法都失败了,请转到您的搜索引擎并输入您的平台名称以及“+ 406 错误代码”以获得特定于平台的故障排除建议。这通常会显示论坛和支持文档,以指导您完成整个过程。
回滚您最近的CMS更改
接下来,是时候探索用于您的网站或应用程序的系统了。您可能会发现您的内容管理系统(例如WordPress)是“406 Not Acceptable”错误的直接原因,因为您的站点文件中的某些内容很复杂。
无论是使用WordPress还是任何其他内容管理系统,请查看您上次更新的时间。无论如何,WordPress都有一个坚固的默认基础架构,旨在避免这些类型的错误。
但是,特定的插件、主题或手动调整的编码可能会产生站点文件违反客户端或服务器请求的情况。简单升级到CMS的最新版本即可立即解决问题。
要确定它是否是您的CMS ,请首先回滚发生在核心文件上的任何最近升级。您可能已经知道,WordPress会定期向其系统发送更新。大多数更新会自动发生,但旧版本仍需要您单击按钮。
此外,WordPress和其他CMS使用多个移动部件,如插件、主题和扩展。这些也会定期更新,因此您可能需要回滚其中一些。
对于WordPress之外的所有系统,搜索“平台名称 + 如何降级”。
如果您使用WordPress,您可以轻松降级您的WordPress网站,有效地将其回滚到以前的版本之一:
降级到以前的WordPress版本
该指南概述了以下降级WordPress网站的方法,其中大部分只需要几分钟:
- 手动降级您的WordPress网站。
- 使用插件完成WordPress系统降级。
- 恢复以前的备份以恢复旧版本,或者至少是以前的内容和文件。
- 手动降级主题或插件。
- 使用单独的插件降级插件或主题。
- 切换到旧版本的PHP。
卸载和重新安装插件、主题和扩展
WordPress插件和主题向与核心WordPress文件交互的站点文件添加额外代码。信誉良好的插件通常不会引起任何问题,但偶尔会发生冲突。插件、主题或第三方扩展可能是406错误的原因。
识别麻烦的插件或主题的行之有效的方法是一一停用您的插件和主题。禁用每个后,检查406错误是否已消失。如果是这样,你就找到了问题所在。如果它没有消失,请重新安装插件或主题并继续卸载下一个。
转到WordPress中的插件选项卡并一个一个地停用每个插件。
分析数据库状态的变化和冲突
不幸的是,删除的“问题”插件仍然可能会影响您的WordPress数据库,因为插件可以完全访问数据库才能正常工作。因此,即使插件的删除使406错误消失,您仍然应该检查数据库的状态。否则,您将来仍有可能会遇到更多问题。
如果插件或主题不是罪魁祸首,您还应该检查您的数据库是否是错误的主要来源。有时,数据库更改,无论是偶然的还是有意的,都会成为出现406错误的主要原因。
要扫描和修复您的数据库,请考虑以下解决方案:
- 安装一个数据库扫描器和清理器,删除无用和麻烦的表和资产。一些选项包括WP Optimize和Advanced Database Cleaner 。此过程的大部分内容涉及删除旧的或孤立的项目,例如垃圾帖子、修订和元数据。这是清理数据库并可能消除406错误的坚实第一步。
- 扫描数据库并查找可能被有问题的插件或看起来不合适或不必要的插件更改的记录和表。
- 如果您知道您的数据库出了什么问题,请访问搜索引擎并从论坛和其他在线讨论中寻求帮助。其他人很有可能遇到过同样的问题。
使用WP-Optimize之类的优化工具清理数据库。图片来源: WP-Optimize
分析您的服务器日志
之前的建议侧重于客户端和面向CMS的故障排除。现在我们将考虑所有服务器端问题。如果您没有使用CMS或知道406错误与您的CMS或客户端计算机没有连接,则此提示以及以下提示是最佳选择。
服务器故障排除的第一步是检查日志。无论您使用什么类型的Web应用程序、CMS或Web设计系统;他们都有服务器端日志。
应用程序日志存储该Web 应用程序的整个(或最近)历史记录,以及有关每个数据库查询、提供的结果、请求的页面等等的信息。另一方面,服务器日志包含有关用于运行 Web 应用程序的服务器或硬件的运行状况和状态的信息。
检查所有可能导致406错误的日志,一般为:
- error.log文件
- access.log文件
调试Web应用程序(如WordPress)
就像大多数 Web 应用程序都有服务器和错误日志一样,它们通常也提供有关调试应用程序本身的信息。调试涉及通过应用程序的代码来查找和消除小错误(或错误)。
运行WordPress(以及任何与此相关的任何 Web 应用程序)完整扫描的最佳方法之一是调试数据库和网站文件。幸运的是,调试并不意味着您必须通读每一行代码并自己找出错误。
防止将来出现406错误
406错误的问题在于它可以在许多不同的情况下弹出。作为普通消费者浏览Hulu或Netflix时,您可能会看到“406 Not Acceptable HTTP”错误。
但没有什么是一点点故障排除无法解决的。更令人担忧的是406错误发生在您的网站或应用程序上。对于这些实例,您需要检查服务器和CMS站点文件。
如果是您的网站,您将希望防止错误再次发生。插件、主题和人为错误总是会起作用,但我们有一些建议可以让您的数据库和站点文件在未来保持干净:
- 仅安装必要且信誉良好的插件、主题和扩展。始终将这些元素保持在最低限度。
- 永远不要修改核心WordPress文件,除非您绝对必须并且知道自己在做什么。
- 定期运行数据库清理器和站点优化器。我们建议每个月完成这个过程,最好找到一个在后台自动运行的更干净的插件。
- 养成调试服务器和Web应用程序的习惯。
- 设置您的网站或应用程序的自动备份。这样,代码冲突或错误不会给您带来太大压力,因为您可以恢复网站的先前版本并从那里开始。
- 在您计划更新WordPress和任何插件之前运行您的站点的手动备份,即使您已经运行了自动备份(安全总比抱歉好)。在编辑任何文件或向站点添加新代码之前运行备份也是明智的。
小结
您可以通过多种方式修复406错误。只要您知道所看到的内容以及在哪里寻找修复程序,您就应该能够清除错误。虽然这不是更常见的WordPress错误之一,但如果您的配置不正确,您会不时看到它。
对于解决“406 Not Acceptable”错误,您还有其他建议吗?请在下面的评论部分分享它们!
评论留言