了解 HTTP 状态码及其含义
已发表: 2021-12-30最后更新于 2022 年 1 月 5 日
在向网站发送 HTTP 请求时,大多数 Web 浏览器会自动发送相应的 HTTP 状态代码,以告知网站您的请求是否成功。 但是这些状态码是什么? 他们的意思是什么? 您将在下面找到状态代码列表。
作为白标 SEO 公司的白标 SEO 专业人员,我们知道 HTTP 状态代码在识别网站上的错误方面非常有帮助。 此类错误可能会导致大量排名问题和搜索引擎信任。 用户和搜索引擎都不想在搜索结果中看到不稳定的网站。
选择状态代码组以轻松下拉到该部分:
- 2xx HTTP 状态码
- 3xx HTTP 状态码
- 4xx HTTP 状态码
- 5xx HTTP 状态码
- 6xx HTTP 状态码
- 7xx HTTP 状态码
- 9xx HTTP 状态码
2xx HTTP 状态码:
200 OK – 成功的 HTTP 请求。 这可能是您从网站获得的最常见的 HTTP 响应。 这意味着您的请求已成功,并且您的数据已发送回给您。
201 Created – HTTP 响应成功,但创建了新资源。 这是对返回附加到 HTTP Location 标头字段的数据的 GET 请求的响应。 Location 标头字段包含新创建资源的 URL。 仅当请求使用 POST 方法或其他不创建可自行向其发送响应的资源的方法时,才会发送它。
202 Accepted – 已接受处理请求,需要进一步处理。 此响应由接受进一步处理请求的 Web 服务器(通常是代理服务器)给出,但这确实需要客户端在立即确认收到请求后采取任何类型的操作。
203 非权威信息——对缓存有用。 这通常是 HTTP 网络级缓存机制中使用的响应代码。 它包含的信息可能来自 Request-URI 标识的资源以外的实体。 结果可能表明由于内容陈旧,代理或缓存无法满足请求。 但是,它不指示提示是否是可以向其发送 200(OK)响应的实体。
204 无内容 - 请求已服务但未返回任何内容。 这意味着服务器成功处理了请求,但没有返回此特定请求的任何内容。 这通常在提供静态文件时使用,例如图像或其他静态 Web 资产。
205 重置内容 - 重置请求资源的内容。 这表明服务器已经为此请求准备了响应,但没有将其发送回客户端。 客户端应不加修改地重新发送请求。 此响应代码通常与 204(无内容)响应结合使用,以指示由 Request-URI 标识的资源已“重置”,以便在处理进一步请求时它可以保持当前状态,但这些请求将返回一个不确定的内容长度:“0 字节”。
206 部分内容 – 收到一些不完整的陈述。 这表明服务器成功处理了请求,但没有返回所请求资源的完整表示。 通常,206 响应将伴随一个 Retry-After 头字段,该字段包含一个值,指示客户端在对该资源发出另一个请求之前应该等待多长时间。
3xx HTTP 状态码:
301 永久移动 - 永久重定向到新位置。 此代码仅与 HTTP 重定向有关。 302 响应表示请求的资源不再可用。 302 响应中的 URI 永远不会解析为原始资源,因为它已被永久重定向到新位置。
302 Found - 成功重定向。 这表明在成功重定向后已找到请求的资源。 原始请求的登录页面将在响应的 Location 标头字段中指定的新 URL 下找到。
303 See Other – 请求的资源存在,但请求应该有节奏。 这表示可以处理请求,但需要额外的时间才能返回结果。 通常,此响应将伴随着 Retry-After 标头字段,该字段指示客户端应重试此请求的时间。
304 Not Modified – 请求已成功处理,无需任何操作。 这意味着响应满足其所有要求(例如验证),但自上次执行此请求以来尚未修改资源。 换句话说,它是一个“304 Not Modified”响应,不需要客户端的任何额外操作来继续处理。
305 Use Proxy – 请求应该通过代理路由。 这是主要与中间代理服务器一起使用的响应代码。 实际的响应将只包括一个状态代码和一个可选的加密 WWW-Authenticate 头字段。 它将使实际内容保持不变,并且只能由代理服务器访问。
307 临时重定向 - HTTP 请求重新路由到另一个位置。 此响应代码表明客户端的请求已被服务器重定向到另一个 URL。 新 URL 将在此响应的 Location 标头字段中提供,它可以是完整的 URI,也可以是部分的 URI。 此代码可用于将来自一个服务器上的脚本或程序的请求重定向到同一服务器上的另一个位置或完全不同的服务器。
308 永久重定向 - HTTP 请求重新路由到另一个服务器。 此响应代码表示客户端的请求已被重定向到同一服务器上的另一个位置或完全不同的服务器。 新 URL 将在此响应的 Location 标头字段中提供,它可以是完整的 URI,也可以是部分的 URI。 此代码可用于将来自一个服务器上的脚本或程序的请求重定向到同一服务器上的另一个位置或完全不同的服务器。
4xx HTTP 状态码:
403 Forbidden – 请求权限被拒绝。 此响应代码表明服务器知道该请求,但没有办法完成它。 客户端应停止发送对该资源的请求。
404 Not Found – 无法找到请求的资源。 这意味着服务器找不到与该请求对应的实体,或者可能不理解客户端的请求是什么意思。 无论哪种方式,客户端都不应该继续其请求。
405 方法 - 请求必须使用 POST 从资源中检索数据。 这用于指示服务器不接受使用 GET 方法的请求,通常是因为它对该资源没有意义。
406 Not Acceptable – 请求的资源只能接受可协商的参数。 这意味着由于客户端的错误或可能由于无状态的 HTTP 代理服务器,无法满足请求。 响应将包括一个实体,描述为什么它不能被填充。 如果没有该实体的表示可用,则响应中不需要包含一个。
408 Request Timeout – 服务器无法及时响应。 客户端应该重试请求,正确地遵循 Retry-After 头域或 Retry-After 响应头或响应正文中其他地方指定的服务器指定的时间要求。 如果省略 Retry-After 头,客户端可以立即重试,但不能早于 Retry-After 时间。
413 Request Entity Too Large – 请求包含服务器不支持或因其他原因拒绝接受的内容。 响应将包括一个实体,描述为什么它不能被填充。 如果没有该实体的表示可用,则响应中不需要包含一个。
414 Request-URI Too Long – 提供的 URI 太长,服务器无法处理。 这可能表明试图利用网络服务器中的缓冲区溢出漏洞。
415 Unsupported Media Type – 请求的资源需要以服务器或资源不支持的方式格式化的数据。 响应将包括一个实体,描述为什么它不能被填充。 如果没有该实体的表示可用,则响应中不需要包含一个。
416 Requested Range Not Satisfiable – 服务器端软件组件没有生成有效的 HTTP 范围标头,如果源服务器可以接受范围,它应该具有该标头。 响应将包括一个实体,描述为什么它不能被填充。 如果没有该实体的表示可用,则响应中不需要包含一个。
417 Expectation Failed – 服务器触及了文档中被忽略的部分,尽管客户端并不认为这部分会受到影响。 通常由网络蜘蛛或爬虫引起。 响应将包括一个实体,描述为什么它不能被填充。 如果没有该实体的表示可用,则响应中不需要包含一个。
420 Unprocessable Entity – 由于过大,请求不可接受。 此响应代码已弃用。 HTTP 客户端应将其视为 400 Bad Request 错误。
421 Locked – 资源不能直接从客户端修改,但可以使用有条件的 GET 或 POST 请求“锁定”。 如果锁定的资源是文件,则其内容在 Content-Range 标头字段中返回,指示到目前为止已接收到的部分以及仍在接收的部分。 如果锁定的资源是一个实体,它的响应是一系列以标题字段开头的实体标题。
422 多状态——服务器在各种状态和算法中具有多种资源表示,可以随时更新以用新的表示替换当前表示。 例如,从商店购买的 CD 可能具有通过电子邮件发送给购买者的加密副本,同时在其存档中具有另一个本地副本。
423 Locked – 资源不能直接从客户端修改,但可以使用有条件的 GET 或 POST 请求“锁定”。 如果锁定的资源是文件,则其内容在 Content-Range 标头字段中返回,指示到目前为止已接收到的部分以及仍在接收的部分。 如果锁定的资源是一个实体,它的响应是一系列以标题字段开头的实体标题。
424 Not Modified – 自生成响应以来,实体尚未被修改。
426 Partial Content – 服务器无法生成更合适的请求实体表示。 此代码表明服务器只能返回请求的部分内容,但会发送它可以发送的内容。
HTTP 状态代码在识别网站上的错误方面非常有用。 此类错误可能会导致大量排名问题和搜索引擎信任。 点击推文5xx HTTP 状态码:
500 Internal Server Error – 生成或处理请求时内部级别出现问题,但不在任何客户端都认为错误的级别上。
501 Not Implemented – 资源未实施,但是,它将转发到可用的、密切相关的资源。
502 Bad Gateway – 作为网关或代理的服务器不能正常处理该类型的请求,无法完成。 这通常是因为服务器不知道如何处理给定的请求。
503 Service Unavailable – 由于维护停机、服务器过载或其他原因,服务器暂时无法处理请求。
504 Gateway Time-out – 由于超时,服务器未处理网关请求。
505 HTTP Version Not Supported – 服务器无法处理请求,因为这不是支持的协议之一。
506 Variant Also Negotiates – 服务器只提供资源的变体。 如果您希望单独处理内容的变体(例如图像或样式表),则必须使用此响应代码。
507 Insufficient Storage – 服务器无法存储完成请求所需的表示。 这可能是由于临时故障,这可能表明临时无法处理请求。 当用户的帐户中没有可用的存储空间或超出了他们的存储配额时,也会使用它。
508 Loop Detected – 此代码类似于 403 Forbidden,但这意味着您尚未获得授权,因为您的 IP 地址已被阻止访问该站点。 出于这个原因,响应正文应该包含一个 WWW-Authenticate 标头字段,指示用户如何授权自己。
509 Not Extended – 服务器不支持“配置文件”OData 操作。 如果您需要执行配置文件请求,请改用 GET 请求。 在这种情况下,如果您的客户端应用程序不兼容 OAuth2,它可能会省略 WWW-Authenticate 标头字段并将其视为空白响应。
510 Not Extended – 服务器不支持“模式”OData 操作。 如果您需要执行模式请求,请改用 GET 请求。 在这种情况下,如果您的客户端应用程序不兼容 OAuth2,它可能会省略 WWW-Authenticate 标头字段并将其视为空白响应。
511 需要网络身份验证 – 客户端需要进行身份验证才能获得网络访问权限。 该代码用于 401 响应。 响应可以包括带有附加身份验证选项的 WWW-Authenticate 标头字段。
599 需要网络身份验证——客户端需要对自己进行身份验证才能获得网络访问权限。 该代码用于 407 响应。 在这种情况下,如果您的客户端应用程序不兼容 OAuth2,它可能会省略 WWW-Authenticate 标头字段并将其视为空白响应。
6xx HTTP 状态码:
600 Busy – 由于请求量大,服务器暂时无法处理请求。 这可能伴随着指示服务何时可能再次可用的 Retry-After 头字段。 如果请求方法不是 HEAD 并且定义了至少一个请求实体,它还应该包括一个具有 error_status 和 error_reason 值的实体主体(如果适用)。
601 已拒绝——服务器拒绝了请求,并将包括原因(例如,用户帐户未授权)。
602 Bad Gateway – 服务器不处理请求资源的网关。 例如,对其端点之一的请求返回此错误。 如果来自不同主机的服务器充当此资源的网关,则可能会发生这种情况。
603 Service Unavailable – 由于维护停机、服务器过载或其他原因,服务器暂时无法处理请求。 在某些情况下,这可能是由于另一个服务暂时关闭它以执行维护而导致该服务对外部客户端不可用。
604 Method Not Allowed – 请求的资源不允许该方法。 这应该很少用作响应,因为 error_status 值更具描述性并且存在很长时间。
605 Variant Also Negotiates – 服务器只提供资源的变体。 如果您希望单独处理内容的变体(例如图像或样式表),则必须使用此响应代码。
606 Not Acceptable – 客户必须接受随附的陈述。
607 Insufficient Storage – 无法处理请求,因为服务器无法存储完成请求所需的表示。 这可能是由于临时故障,这可能表明临时无法处理请求。 当用户的帐户中没有可用的存储空间或超出了他们的存储配额时,也会使用它。
610 Precondition Failed – 从先前请求中收到的信息不满足条件。 请求可以包含一个正文,其 Content-Type 必须是有效的可用表示。
611 需要网络身份验证——客户端需要对自己进行身份验证才能获得网络访问权限。 该代码用于 407 响应。 在这种情况下,如果您的客户端应用程序不兼容 OAuth2,它可能会省略 WWW-Authenticate 标头字段并将其视为空白响应。 此代码仅应在针对外部服务器或服务而不是针对请求者本身进行身份验证时使用。
616 Bad Request – 请求无效或不受支持。 这应该是指示请求格式错误的超级代码。 例如,没有实体主体的请求。
617 已经回复——服务器已经在回复之前的请求。 在某些情况下,当客户端发送第二个请求而第一个请求仍在处理中时,可能会使用它。
618 内部服务器错误 – 内部服务器错误或服务器配置错误 - 生成错误响应。
619 Request Time-out – 发生未捕获的异常、超时或其他技术问题,阻止进一步处理请求。 响应消息正文通常会包含有关问题的更多详细信息。
620 Bad Gateway – 服务器不处理请求资源的网关。 当来自不同主机的服务器充当此资源的网关时,就会发生这种情况。
7xx HTTP 状态码:
711 Unknown Resource – 服务器不处理这个特定的请求方法,或者它无法理解请求体。
712 Unprocessable Entity – 请求实体格式正确但无法处理。 这可能是由于服务器级别的验证错误,或者如果它是响应,则响应已过期或引用已删除的资源。 这可能伴随着指示服务何时可能再次可用的 Retry-After 头字段。
713 Locked – 资源被另一个系统使用,或者是只读的。 这可能伴随着指示服务何时可能再次可用的 Retry-After 头字段。
714 Shared Use – 资源已分配给多个客户。 这应该与 411(使用冲突)响应代码一起使用,其中不应授予一个客户端对资源的独占访问权限。 它还可能表明该资源上的进一步事务应该等到其他客户端完成他们的事务。
9xx HTTP 状态码:
915 Request Entity Too Large – 由于请求正文过长,服务器无法处理。 如果您想在请求中包含大型文档,请考虑使用 POST 并限制文档的长度。
917 Request Entity Too Large – 由于请求过长,服务器无法验证请求是否格式正确。 如果您想在请求中发送长格式,请考虑改用 POST。
918 Request Entity Too Large – 由于请求过长,服务器无法验证请求是否格式正确。 如果您想在请求中发送长格式,请考虑改用 POST。
919 Request Entity Incomplete – 服务器没有足够的信息来处理请求,因为实体太小,或者不支持媒体类型。 客户端可以使用它来验证请求是否已被接收,以及它是否包含所有必要的信息,然后再继续处理。
930 Authentication Required – 客户端尝试对自己进行身份验证但失败,因此没有返回实体主体。 它可能伴随着一个 WWW-Authenticate 头字段,其中包含有关如何验证自身的信息。
980 Not Found – 找不到资源。 这可能表示为此 API 定义的标识符之一出现错误,例如 API 密钥或 API 路径 (URI)。
999 未知错误 – 发生一般错误。 没有关于该问题的其他信息。 它可以用作对任何意外故障的响应。
您可以遇到的大量 HTTP 状态代码到此结束。 值得庆幸的是,其中大部分很少在野外发现,但重要的是要知道当你找到它们时该怎么做。 这就是为什么与能够识别问题并找到适当解决方案的白标 SEO 专业人员合作至关重要的原因。