HTTP状态代码就像来自服务器的简短说明,它们被粘贴到网页上。它们实际上不是网站内容的一部分。相反,它们是来自服务器的消息,让您知道当它收到查看特定页面的请求时情况如何。
每当您的浏览器与服务器互动时,即使您看不到这些消息,它们也会返回。如果您是网站所有者或开发者,那么了解HTTP状态代码至关重要。当它们确实显示时,HTTP状态代码是诊断和修复网站配置错误的宝贵工具。
本文介绍了几种服务器状态和错误代码,并解释了它们揭示了幕后服务器上正在发生的事情。
只需移至Kinsta,即可将WordPress网站的速度提高200%。
今天免费迁移
让我们潜入吧!
什么是HTTP状态代码?
每次您单击链接或键入URL并按Enter键时,浏览器都会向网络服务器发送您要访问的网站的请求。服务器接收并处理该请求,然后将相关资源与HTTP标头一起发回。
HTTP状态代码通过HTTP标头传递到您的浏览器。虽然每次浏览器请求网页或资源时都会返回状态代码,但大多数情况下您不会看到它们。
通常只有在出现问题时,您才会在浏览器中看到显示的内容。这就是服务器的说法:“有些事情不正确。这是解释错误原因的代码。”
Google 404 HTTP状态码
如果您想查看浏览器通常不会显示的状态代码,可以使用许多不同的工具来简化操作。浏览器扩展适用于对开发人员友好的平台,例如Chrome和Firefox,并且有许多基于Web的标头获取工具,例如Web Sniffer。
要使用这些工具之一查看HTTP状态代码,请查找报告顶部附近显示“状态:HTTP / 1.1”的行。这之后将是服务器返回的状态代码。
了解HTTP状态代码类
HTTP状态代码分为5个“类”。这些是具有相似或相关含义的响应分组。了解它们是什么可以帮助您快速确定状态码的基本内容,然后再查找其具体含义。
这五个类包括:
-
100s:信息代码,指示浏览器发起的请求正在继续。
-
200s:服务器收到,理解和处理浏览器请求时返回成功代码。
-
300s:将新资源替换为请求的资源时返回的重定向代码。
-
400s:客户端错误代码表示请求存在问题。
-
500s:服务器错误代码表示已接受请求,但服务器上的错误阻止了请求的执行。
在每个此类中,存在多种服务器代码,并且服务器可能会返回这些代码。每个单独的代码都有特定且独特的含义,我们将在下面更全面的列表中进行介绍。
为什么HTTP状态代码和错误对于搜索引擎优化(SEO)至关重要
搜索引擎机器人在抓取您的网站时会看到HTTP状态代码。在某些情况下,这些消息可能会影响您的网页是否以及如何建立索引,以及搜索引擎如何看待您网站的健康状况。
一般来说,100级和200级HTTP状态代码不会对您的SEO产生太大影响。它们表示一切正常,应该在您的网站上运行,并使搜索引擎机器人继续前进。但是,它们也不会提高您的排名。
在大多数情况下,对于SEO来说,更重要的是高层代码。 400级和500级响应可以防止漫游器对您的页面进行爬网和编制索引。这些错误太多也可能表示您的网站质量不高,可能会降低您的排名。
300级代码与SEO的关系有些复杂。要了解其影响,您需要了解的主要内容是永久重定向和临时重定向之间的区别,我们将在下面的相关部分中对其进行详细介绍。
简而言之,永久重定向从反向链接共享链接资产,而临时重定向则没有。换句话说,当您对已移动的页面使用临时重定向时,您将失去所有已完成链接构建的SEO优势。
在Google Search Console中检查HTTP状态代码
监视Google如何在您的网站上感知HTTP状态代码的一种方法是使用Google Search Console。您可以在覆盖率报告中查看300、400和500级状态代码:
Google Search Console的覆盖率报告
仪表板的该区域显示站点上的四种内容:
- 返回错误的页面。
- 带有警告的有效页面。
- 有效的资源。
- 从索引中排除的内容。
根据代码类型的不同,您可能会在带有警告的“排除”,“错误”或“有效”部分下找到具有300、400和500级别HTTP状态代码的页面。例如,“ 301重定向”可能在“具有重定向的页面”下列出:
在Google Search Console的覆盖率报告中带有重定向的页面。
在错误下可能会出现400和500级状态代码。
查看HTTP状态代码的另一种方法是使用URL检查工具。如果Google由于错误而无法为特定页面编制索引,您将在这里看到以下内容:
Google Search Console的网址检查工具中出现404错误
有关使用Google Search Console的更多提示,请查看我们对该平台的综合指南。
完整指南和HTTP状态代码列表
尽管有40多种不同的服务器状态代码,但是您经常会遇到少于十二种的服务器状态代码。下面,我们介绍了更常见的代码以及您可能仍然会遇到的一些较晦涩的代码。
100状态码
100级状态代码告诉您,由于某些原因,您对服务器的请求仍在处理中。这并不一定是问题,它只是让您了解发生了什么的额外信息。
-
100:“继续。”这意味着相关服务器已收到您浏览器的请求标头,并且现在也准备发送请求正文。这使请求过程更加有效,因为即使标头已被拒绝,它仍可阻止浏览器发送正文请求。
-
101:“交换协议。”您的浏览器已要求服务器更改协议,并且服务器已合规。
-
103:“早期提示”。在服务器其余响应准备就绪之前,这将返回一些响应标头。
200状态码
这是最好的HTTP状态代码。 200级的响应意味着一切都按预期运行。
-
200:“一切都很好。”这是网页或资源按预期方式运行时传递的代码。
-
201:“已创建。”服务器已满足浏览器的请求,因此创建了新资源。
-
202:“被接受。”服务器已接受您浏览器的请求,但仍在处理中。该请求最终可能会或可能不会导致完整的响应。
-
203:“非权威信息”。使用代理时,可能会出现此状态代码。这意味着代理服务器从源服务器收到了200个“一切正常”状态代码,但是在将响应传递给浏览器之前已对其进行了修改。
-
204:“没有内容。”此代码表示服务器已成功处理了请求,但不会返回任何内容。
-
205:“重置内容”。就像204代码一样,这意味着服务器如何处理请求但不返回任何内容。但是,这还要求浏览器重置文档视图。
-
206:“部分内容”。如果您的HTTP客户端(也称为浏览器)使用“范围标头”,则可能会看到此状态代码。这使您的浏览器可以恢复暂停的下载,以及将下载分成多个流。当范围标头使服务器仅发送部分请求的资源时,将发送206代码。
300状态码
重定向是用于传达资源已移动到新位置的过程。重定向随附有几种HTTP状态代码,以便为访问者提供有关在哪里可以找到他们要查找的内容的信息。
-
300:“多项选择”。有时,服务器可以响应多种可能的资源来满足您的浏览器请求。 300状态码表示您的浏览器现在需要在它们之间进行选择。当有多个可用的文件扩展名时,或者服务器出现单词歧义消除时,可能会发生这种情况。
-
301:“所请求的资源已被永久移动。”当网页或资源被其他资源永久替换时,将交付此代码。它用于永久URL重定向。
-
302:“请求的资源已移动,但已找到。”此代码用于指示已找到请求的资源,而不是在期望的位置。它用于临时URL重定向。
-
303:“另见”。要了解303状态码,您需要了解四种主要HTTP请求方法之间的区别。本质上,一个303代码告诉您的浏览器它找到了您的浏览器通过POST,PUT或DELETE请求的资源。但是,要使用GET检索它,您需要向不同于先前使用的URL发出适当的请求。
-
304:“自上次访问以来,尚未修改所请求的资源。”该代码告诉浏览器,存储在浏览器缓存中的资源没有更改。通过重用以前下载的资源来加快网页的交付速度。
-
307:“临时重定向”。当资源已临时移动到其他URL时,此状态代码已将302“找到”替换为适当的操作。与302状态代码不同,它不允许更改HTTP方法。
-
308:“永久重定向”。状态代码308是301“永久移动”代码的后继。它不允许更改HTTP方法,并指示所请求的资源现在永久位于新的URL。
400状态码
在400级别,HTTP状态代码开始变得有问题。这些是错误代码,表示您的浏览器和/或请求有问题。
-
400:“错误请求”。由于客户端错误,服务器无法返回响应。请参阅我们的指南以解决此错误。
-
401:“未经授权”或“需要授权”。当目标资源缺少有效的身份验证凭据时,服务器将返回此值。如果您使用htpasswd设置了基本的HTTP身份验证,则可能会看到此信息。
Chrome中的Nginx 401授权要求错误
-
402:“需要付款。”最初,此代码是为用作数字现金系统的一部分而创建的。但是,该计划从未实施。取而代之的是,它被各种平台用来表示无法满足请求,通常是因为缺少所需资金。常见的实例包括:
- 您已达到对Google Developers API的每日请求限制。
- 您尚未支付Shopify费用,并且商店已被暂时停用。
- 您通过Stripe付款失败,或者Stripe试图防止欺诈性付款。
-
403:“禁止访问该资源。”当用户尝试访问其无权查看的内容时,将返回此代码。例如,尝试在未登录的情况下访问受密码保护的内容可能会产生403错误。
-
404:“未找到请求的资源。”这是它们中最常见的错误消息。此代码表示所请求的资源不存在,并且服务器不知道它是否曾经存在。
-
405:“不允许使用方法。”当托管服务器(原始服务器)支持所接收的方法但目标资源不支持该方法时,会生成此消息。
-
406:“响应不可接受。”根据请求中发送的接受标头,请求的资源只能生成不可接受的内容。
-
407:“需要代理身份验证。”代理服务器正在使用中,需要您的浏览器进行身份验证后才能继续。
-
408:“服务器超时,等待来自浏览器的其余请求。”当服务器在等待来自浏览器的完整请求时超时时,将生成此代码。换句话说,服务器未获得浏览器发送的完整请求。一种可能的原因可能是网络拥塞,导致浏览器和服务器之间的数据包丢失。
-
409:“冲突。”状态代码409表示服务器无法处理您的浏览器请求,因为与相关资源存在冲突。有时由于多次同时编辑而发生这种情况。
-
410:“所请求的资源已消失,不会再回来。”这类似于404“未找到”代码,除了410表示该状况是预期的和永久的。
-
411:“长度要求”。这意味着请求的资源要求客户端指定一定的长度,而没有指定。
-
412:“前提条件失败。”您的浏览器的请求标头中包含某些条件,并且服务器不符合这些规范。
-
413:“有效负载太大”或“请求实体太大”。您的请求大于服务器愿意或能够处理的请求。
-
414:“ URI太长。”通常这是由于GET请求已被编码为查询字符串而导致服务器无法处理的结果。
-
415:不支持的媒体类型。该请求包含服务器或资源不支持的媒体类型。
-
416:“范围无法满足。”您的请求是请求服务器无法返回的一部分资源。
-
417:“期望失败。”服务器无法满足请求的“期望标头”字段中指定的要求。
-
418:“我是茶壶”。收到煮咖啡请求的茶壶返回此代码。这也是1988年愚人节的笑话。
418“我是茶壶”状态码
-
422:“不可处理的实体。”客户请求包含语义错误,服务器无法处理。
-
425:太早。服务器不愿处理请求(因为可能会重播)时,将发送此代码。
-
426:“需要升级。”由于请求的升级标头字段的内容,客户端应切换到其他协议。
-
428:“需要先决条件。”服务器要求在处理请求之前指定条件。
-
429:“请求太多。”当用户在给定的时间内(速率限制)发送了太多请求时,服务器将生成此消息。有时可能是由于漫游器或脚本试图访问您的站点而导致的。在这种情况下,您可能想尝试更改WordPress登录URL。您还可以查看我们的修复429“请求过多”错误的指南。
429个请求过多
-
431:请求头字段太大。服务器无法处理该请求,因为标头字段太大。这可能表示单个标头字段或所有标头字段共同存在问题。
-
451:“由于法律原因不可用。”服务器的操作员已收到禁止访问您所请求的资源(或包括您所请求的一组资源)的要求。有趣的事实:此代码引用了雷·布拉德伯里(Ray Bradbury)的小说《华氏451》。
-
499:“客户已关闭请求。”当客户端在Nginx仍在处理请求时关闭该请求时,NGINX返回此消息。
500状态码
500级状态代码也被视为错误。但是,它们表示问题出在服务器端。这会使它们更难解决。
-
500:“服务器上有错误,请求无法完成。”这是通用代码,仅表示“内部服务器错误”。服务器上出了点问题,请求的资源没有交付。此代码通常是由第三方插件,错误的PHP甚至与数据库断开的连接生成的。查看我们的教程,了解如何解决建立数据库连接的错误以及解决500个内部服务器错误的其他方法。
建立数据库连接时出错
-
501:“未实施。”此错误表明服务器不支持满足请求所需的功能。这几乎始终是Web服务器本身的问题,通常必须由主机解决。查看我们有关如何解决501未实现错误的建议。
-
502错误的网关。”此错误代码通常表示一台服务器从另一台服务器收到无效响应,例如在使用代理服务器时。其他时候,查询或请求将花费很长时间,因此服务器将其取消或杀死,并且与数据库的连接也会中断。有关更多详细信息,请参见有关如何修复502 Bad Gateway错误的深入教程。
-
503:服务器现在无法处理此请求。该请求目前无法完成。该代码可能由无法处理其他请求的过载服务器返回。我们有完整的指南,介绍如何解决503服务不可用错误。
-
504:“充当网关的服务器超时,等待另一台服务器响应。”当有两个服务器参与处理请求,并且第一台服务器等待第二台服务器响应时,这是返回的代码。您可以在我们的专用指南中阅读有关如何修复504错误的更多信息。
-
505:“不支持HTTP版本。”该服务器不支持客户端用于发出请求的HTTP版本。
-
511:“需要网络身份验证。”当您尝试使用的网络在将请求发送到服务器之前需要某种形式的身份验证时,将发送此状态代码。例如,您可能需要同意公共Wi-Fi热点的条款和条件。
-
521:“ Web服务器已关闭。”错误521是Cloudflare特定的错误消息。这意味着您的Web浏览器能够成功连接到Cloudflare,但是Cloudflare无法连接到原始Web服务器。
在哪里了解有关HTTP状态代码的更多信息
除了我们在此列表中介绍的HTTP状态代码外,您可能还需要了解一些其他晦涩的代码。您可以参考几种资源来阅读这些稀有代码,包括:
- Wikipedia的HTTP状态代码的完整列表。
-
Internet工程任务组(IETF)的状态码定义。
-
RFC 7231。
了解这些状态代码可能有助于您解决一些独特的问题,同时维护自己的网站,甚至在其他网站上遇到它们时也是如此。
乍一看,它们似乎令人生畏,但是HTTP状态代码对于了解您网站上发生的事情很重要。这是您应该熟悉的详细列表! ??
点击鸣叫
摘要
虽然表面上看起来有些混乱或令人生畏,但HTTP状态代码实际上非常有用。通过学习一些常见问题,您可以更快地解决网站上的问题。
在本文中,我们定义了您可能会遇到的40多个HTTP状态代码。从温和的100级和200级代码到棘手的400级和500级错误,理解这些消息对于维护您的网站并确保用户可访问性至关重要。
10股
- 0
- 1个
- 0
- 9
- 0
- 0
- 0
- 0