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