不同400错误码的定义

更新时间:2022-05-16 / 文章作者:Timothy Shim

400 错误代码是表明服务器不理解请求的 HTTP 状态代码。 这些错误可能是由无效请求引起的,也可能是由于服务器遇到问题而未能提供您要查找的内容。 

问题是大多数错误代码都是由一个数字和几个单词的简短描述来表示的。 为了帮助那些正在努力理解这一点的人,我将稍微扩展描述以获得更好的清晰度。

是什么导致错误请求错误?

错误请求错误是由多种原因造成的,但最常见的原因是用户输入错误的 URL。 当个人错误地使用斜线或 & 符号或完全遗漏部分 URL 时,可能会发生这种情况。 服务器将难以处理请求并最终返回 400 错误代码。

另一种可能性是用户输入了来自外部来源的 URL 并错误地复制了它或以某种方式弄错了。 例如,如果您使用手机打开一个网站,然后输入一个网站地址,您可能会因为胖手指综合症(比如我)而误输入一些字符。

错误请求错误的一个不太常见的原因是客户端-服务器通信有问题。 这可能是因为服务器根本不了解客户端(您的计算机浏览器)所请求的内容,或者即使它了解正在发生的事情,它也无法执行所要求的内容。

如果您收到这种类型的 400 错误消息,请尝试刷新您的页面或运行其他搜索,直到找到可以正常工作的内容,然后使用该 URL 而不是现在对您造成问题的任何内容。

400 个错误代码列表及其含义

了解这些错误的含义以及如何解决它们将有助于您解决网站服务器的问题(如果您将来遇到问题),并且了解它们的定义有助于找出您的网站为何无法正确交付其内容的原因任何给定的时间。

400错误请求

400 Bad Request 错误很常见,当资源请求(例如,尝试访问网页或图像)以某种方式向服务器发送格式错误并且无法为您提供资源时,就会发生这种错误。 它与 404 Not Found 错误几乎相同,但通常会在可能找到某些东西但被认为不适合客户端使用的情况下发生。

此状态代码的示例包括:

  • 请求包含无效语法或无法完成;
  • 为多余的消息体提供了无效的 Content-Length 头域,或者除了 Content-Length 头域外没有其他人;
  • 存在欺骗性路由(例如,客户端试图通过请求的 URI 标识的主机以外的主机进行代理); 或者
  • 它失败是因为先前的请求失败(例如,如果由于“预期”的不安全请求序列失败而导致请求序列失败,则 503 响应可能是合适的)。

401未经授权

401 错误状态响应意味着您没有正确的身份验证凭据来访问您尝试访问的内容。 当使用中间代理的客户端身份验证出现问题时,也经常使用此 HTTP 状态代码。

402 需要付款

402 错误意味着服务器拒绝了请求,因为您没有付款,或者付款但没有设置付款方式。 当您在本地计算机上测试站点并且尚未支付托管费用时,通常会遇到此错误。 把它想象成你的网站告诉你“首先,付钱给我”。

故宫403

403错误
403错误在互联网上是一分钱一分钱

403 错误是另一种常见的情况,当存在文件读取权限不足的网络服务器进程时会发生这种情况。 它也可能是由于对站点根目录中的脚本或文件夹的所有权或权限不正确,以及对 Web 空间中的资源缺乏适当的访问权限造成的。

简而言之,如果您尝试使用代表您但尚未由 Internet 服务提供商分配的 IP 地址连接到 URL,您将收到此错误; 如果根本没有这样的 URL; 或者如果没有这样的 URL 并且它属于其他人(例如,如果他们删除了他们的网站)。

404未找到

404 Not Found 可能是您可能会遇到的最常见的错误代码。 它表示服务器找不到请求的资源。 在理想情况下,您单击的每个链接或您请求的每个网页都会有正常的响应时间并准确返回您正在寻找的内容,但实际上,这并不总是发生。

如果用户在尝试访问网页时收到 404 Not Found 错误,则表示发生了以下两种情况之一:

  • 该页面在网站上不再可用(或从不可用)。
  • URL 有错误 - 例如,地址拼写错误。

在这种情况下,“破碎”的另一个词是死的(如 死链接).

405方法不允许

HTTP 错误代码 405 Method Not Allowed 表示由于某种原因,服务器被配置为拒绝特定的请求方法。 这是针对在特定条件下不允许的请求的 HTTP 标准响应。 例如,如果您尝试将数据表单发布到 URL,但您的客户端配置为使用 GET 方法而不是 POST,您将触发此错误。

您收到此错误消息的最可能原因是服务器上的权限配置不正确。 如果您尝试在您的网站上修复此错误,那么获得帮助的最佳地点就是您的 托管服务 提供者。 您需要询问他们是否允许有问题的 HTTP 方法。

您还可以通过在您的 .htacce.ss 文件.

406不可接受

406 Not Acceptable 错误是客户端错误代码。 当服务器无法发送符合请求标头中请求的格式的响应时,服务器将响应此错误。 换句话说,如果您要的是 JPG 文件,而服务器需要向您发送 PDF,它会响应此错误。

这个错误码并不常见,有些浏览器可能无法正确显示。

406 状态码仅表示您的请求格式存在问题。 响应中不能包含 406 消息正文,所以如果你看到一个,那么你的端可能有问题。 

这有时可能是由系统上的浏览器错误或恶意软件引起的,它会强制每个页面的源下载为 HTML 即使在您的首选项中指定了其他格式。 此错误很可能是由于 URL 请求不正确(例如,输入“www.examplecom”而不是“www.example​.com”)而发生的。

要求407代理身份验证

407 Proxy Authentication Required 意味着服务器无法完成请求,因为客户端缺少适当的身份验证凭据 代理服务器 即拦截客户端和服务器之间的请求。

当网站尝试通过代理服务器加载内容时,通常会发生 407 错误,但它没有从该代理服务器获得授权。 此错误可能与您的 Internet 设置配置不正确或 火墙. 这也可能意味着您正在使用学校或工作场所设置的计算机,而这些实体阻止您访问某些网站。

408请求超时

使用代码 408,客户端在服务器准备等待的时间内没有产生请求。 你看,当谈到互联网通信时,机器没有人类的耐心——它们期望立即响应。 而且由于这些机器通常提供重要的信息或服务,它们有时可能是无情的。

408 错误最可能的原因是客户端产生了一个很大的请求(例如下载整个操作系统),或者它产生的请求太快了。 后者通常发生在自动化流程(例如,机器人)中。 

在这两种情况下,服务器都超时等待请求; 它不再期望从您的浏览器接收任何进一步的信息,如果您继续保持沉默,它将关闭您的连接。

409冲突

409 冲突是一个客户端错误代码,它表明在您尝试从网络服务器发出请求期间发生的事情存在问题。 例如,为了从某人的 电子商务网站上的购物车,您需要首先确保它存在于他们的购物车中才能删除它。 

如果您尝试发送删除请求以删除不在购物车中的商品,则会导致 409 冲突。 简单地说,你不能删除不存在的东西。

410已经过时了

410 Gone 错误代码是对不再存在的资源请求的响应。 服务器不会响应对该资源的任何请求,并且应该将其从客户端的缓存中删除。

此错误代码表明该资源已被有意删除并且不会再回来。 它类似于 404 Not Found,但有时用于代替曾经存在但已被故意删除的资源的 404 错误。

需要411长度

411 Length Required 状态码表示服务器期望在客户端请求中包含一个有效长度值的 Content-Length 头域。 有效的 Content-Length 标头值必须存在于请求中并且等于或大于零。

如果 POST 请求不包含 Content-Length 标头,则用户代理很可能会拒绝它并显示错误消息,例如“需要 411 长度”或“411 缺少必填字段”。

412前提条件失败

412 Precondition Failed 响应代码表明存在服务器尚未满足的现有条件。 服务器必须使用 Retry-After 标头或通过发送 417 Expectation Failed 状态代码来响应这些先决条件的列表(仅那些未通过检查的先决条件)。

有时,此错误被用作其他类型条件的“OK”响应,例如当用户已成功通过身份验证但无权访问所请求的资源时。 在这种情况下,通常会提供资源的替代表示,如果没有可用的表示,则返回 404 Not Found。

413有效负载过大

413 Payload Too Large 响应状态代码表示您正试图要求服务器执行它不具备处理能力的任务。 由于它知道请求是不可能满足的,它通常会放弃并关闭连接。

你不应该太担心这个错误,因为它通常不是永久性的。 有效负载是动态的,服务器将包含一个 Retry-After 标头字段,以便客户端稍后可以执行重复请求。

414 URI太长

当您尝试访问或使用的 URL 太长并且服务器无法处理它时,会出现 414 URI Too Long 错误。 使用代理服务器时最常返回此错误代码,尤其是当您尝试访问的 URL 附加了许多参数时。

以下示例显示了如何在浏览器中返回 414 代码的错误消息:

Request-URI Too Long 请求的 URL 的长度超过了此服务器的容量限制。

415不支持的媒体类型

415 Unsupported Media Type HTTP 状态码的含义正是它的名字所暗示的:服务器拒绝接受客户端的请求,因为它有一个目标资源不支持的格式的正文。

当请求正文格式不正确或使用不受支持的媒体类型时,通常会发生此错误。 例如,POST 请求可能包含 JSON 数据,但包含指定 text/ 的 Content-Type 标头HTML.

修复此错误的理想方法是添加对正确媒体类型的支持或更改正文格式,使其适合您接受的类型之一。

416范围不满足

如果您的请求中有 Range 请求头字段,则 Web服务器 可能会响应此错误。 例如,如果范围说明符值重叠并且不包含 If-Range 请求标头字段。 

当为字节范围请求返回此状态代码时,响应应该包含一个 Content-Range 实体头字段,指定所选资源的当前长度。 你不应该使用 多部分/字节范围内容类型.

417期望失败

当服务器无法满足 Expect 请求标头字段的要求时,您将面临 417 Expectation Failed 错误。 许多应用程序使用此代码来响应数字签名或 加密 在消息中使用,并且必须包含对如何处理此类消息的期望。

然后指示客户端不要在没有修改的情况下重复请求; 否则,它将继续收到 417 状态码。

418我是个茶壶

对于那些觉得开发人员没有幽默感的人来说,418 I'm a teapot 错误似乎旨在证明他们是错误的。 当 HTTP 客户端尝试用茶壶冲泡咖啡时会返回此错误,因为附加的壶实际上是茶壶——又短又粗。 

错误代码是传统的一部分 IETF 愚人节笑话,在 RFC 2324 中,超文本咖啡壶控制协议。 顺便说一句,这不是真的。 我只包括它是因为你们中的一些人会在 Google 上找到它。

421 错误的请求

当服务器拒绝定向请求时会发生 421 错误。 这可能有几个原因,包括

  • 客户端已将请求发送到错误的端口。
  • 该请求可以被定向到不同的服务器。
  • 服务器可能无法理解请求。
  • 服务器可能无法解释请求。

422无法处理的实体

422 Unprocessable Entity 是客户端错误,通常表示服务器由于各种原因无法处理请求。 一种常见的可能性是请求的格式不正确。 服务器也可能是个坏小子并发送不应该发送的错误消息。

如果您在响应特定请求时收到 422 Unprocessable Entity 错误,则无法仅通过更改请求参数来修复它。 它只是意味着由于上述原因,应用程序服务器无法处理您的整个请求。 

当您尝试在不受支持的 URL 上使用 PUT 或 POST 方法访问端点时,可能会发生这种情况。

423已锁定

423 Locked 错误是 400 Bad Request 错误的子集,这意味着客户端向服务器发送了一个语法错误的请求。 这些错误与 401 Unauthorized(或 403 Forbidden)错误代码非常相似,但在这种情况下,身份验证将无济于事。 虽然两者都反映了授权失败,但它们之间存在本质区别。

在 401 Unauthorized 错误中,服务器通知客户端它缺乏授权客户端访问的能力。 响应标头将包括类似 WWW-Authenticate: Basic realm="Restricted Area" 的内容,当您的浏览器看到此标头时,如果您尚未输入用户名和密码,它将提示您输入用户名和密码。 

如果您输入正确,那么您的浏览器将重新发送带有授权标头的原始请求(如授权:基本 eFVzdEp0EYB0)。

相比之下,在 423 Locked 错误中,不可能重新发送这样的重新发送,因为即使输入有效的凭据也不会像现在那样允许授权 - 因此名称为“Locked” - 因为无论如何它都会被禁止。 

响应标头将包含类似“允许:获取 POST HEAD OPTIONS TRACE”的内容; 允许这些方法,但不允许“PATCH”或“DELETE”——这些方法被锁定在此资源上。

424 依赖失败

此错误代码类似于 503服务不可用,除了服务器未能满足请求,因为该请求依赖于另一个请求并且该请求失败。 客户端不应未经修改就重复相同的请求。 

例如,用户尝试使用两种方法执行操作; 一种方法需要身份验证,而另一种不需要。 如果用户未通过身份验证,他们将收到此错误代码作为响应。

425 太早了

未准备好处理请求的服务器返回 425 Too Early 错误代码。 这可能是因为服务器很忙,或者因为它收到了无法处理的请求。 另一种可能性是客户端使用过时的信息来组合其初始请求,而这已经改变了。

426需要升级

如果发生 426 错误,则表示服务器拒绝根据所选协议处理请求。 可以批准和处理对另一个协议的“升级”。 426 错误将包含有关它需要哪些协议的信息。

例如,当请求一个页面时,浏览器可能会收到一个 426 响应,说明它必须使用 HTTPS 而不是 HTTP.

428需要先决条件

428 Precondition Required 状态意味着必须满足条件才能满足请求。 大多数服务器使用它来避免 “丢失更新”问题. 当客户端获取资源状态、修改它并在服务器上替换它时,就会发生这种情况。 

在此期间,状态被其他人修改——因此,出现了冲突。 可以把它想象成两个人争夺在笔记本上使用同一页面的权利。

Web 服务器使用条件来确保使用它的每个人都拥有可修改状态的正确副本。 要启动前置条件检查,您必须在请求中包含“If-Match”或“If-Unmodified-Since”标头字段。 例如:

GET /test HTTP/1.1
If-Match: "747060ad8c113d8af7ad2048f209582f

429请求太多

HTTP 错误 429 Too Many Requests 是由服务器拒绝 HTTP 请求引起的,因为客户端在给定时间内发送了太多请求。 此错误通常是由某种限速系统引起的,例如 Cloudflare 速率限制反DDoS保护脚本.

速率限制会有所不同,因此除非您是管理限制器的人,否则没有真正的方法可以预测这一点。 但是,只要您继续尝试推送,您的 IP 地址最终很有可能会被禁止。

431请求标头字段太大

431 状态码仅表示您发送到服务器的标头字段太大。 这也可能意味着标头字段有问题。 在后一种情况下,响应表示通常会指示太大的特定标头字段。

原始服务器可以使用状态码为 431 的响应来指示请求可能不安全或不适当。 响应必须包含描述为何无法完成此类操作的元数据。

451由于法律原因不可用

当内容因法律问题不可用时,将报告 HTTP 451 错误。 如果您收到此错误代码,您应该联系您的服务器管理员,他们可以提供有关导致问题的原因以及如何解决问题的更多信息。

由于此错误与审查和法律问题有关,因此任何导致错误 451 的请求通常都会返回一条通用消息,指出资源因法律原因不可用。

修复 400 错误代码

修复 400 错误代码的方法取决于您是网站的用户还是所有者。 对于用户,您无需执行任何操作,只需刷新页面或稍后重试。 如果这不起作用,您需要联系网站的所有者/管理员来修复它。

如果您是网站所有者并在终端中收到此错误代码,则需要了解一些事项。 首先,许多 400 错误代码可能是由于服务器文件中的代码编写不当造成的。 您将需要了解这些各种错误的含义并找到修复它们的正确行动方案。 

总结

400 错误可能会导致很多挫折,但幸运的是,如果您了解网络服务器想要什么,它们很容易解决。 幸运的是,每个错误都是不同的,并且在您的浏览器上会有自己的状态消息。 这应该可以让您弄清楚请求失败的原因以及如何修复它。

如果您仍然遇到请求无法解决的问题,请尝试联系您的托管支持或尝试不同的浏览器,因为某些浏览器可能会以不同的方式处理某些请求。

了解更多

关于Timothy Shim

Timothy Shim是一位作家,编辑和科技爱好者。从信息技术领域开始他的职业生涯,之后迅速地在印刷领域找到方向,并与国际,地区和国内媒体合作,包括ComputerWorld,PC.com,Business Today和The Asian. Banker。他的专长在于消费者和企业的技术领域。