HTTP状态代码就像来自Web服务器的简短注释,它被添加到网页的顶部。它实际上不是网页的一部分。相反,它是来自服务器的消息,让您知道服务器收到查看页面请求后的情况。
每次浏览器与服务器交互时都会返回这些类型的消息,即使您没有经常看到它们。如果您是网站所有者或开发人员,了解HTTP状态代码至关重要。HTTP状态代码是诊断和修复网站配置错误的重要工具。
本文介绍了最常见的服务器状态和错误代码,并说明它们所代表的意义。
他们来自哪里?他们去哪里?
每次单击链接或键入URL并按“Enter”键,浏览器都会向Web服务器发送请求。Web服务器接收并处理请求,然后将请求的资源与HTTP标头一起发回。
HTTP状态代码将在HTTP标头中传递到您的浏览器。虽然每次浏览器请求网页或资源时都会返回状态代码,但大多数情况下您都没有看到它们。当出现问题时,您可能会在浏览器中看到HTTP状态代码。这是服务器的反馈信息,告诉你:“有些东西不对。这是一个解析出错的代码。“
Google 404 HTTP状态代码
如果您想查看浏览器通常不会显示的状态代码,可以使用许多不同的工具来查看。浏览器扩展适用于开发人员友好的浏览器,如Chrome和Firefox,还有许多基于Web的标题提取工具,如Web Sniffer。
要使用这些工具查看HTTP状态代码,请查看报告顶部附近出现的行“Status:HTTP / 1.1”,后跟服务器返回的状态代码。
HTTP状态代码
HTTP状态代码列表分为5个类:
- 100’s:信息代码,表示浏览器发起的请求正在继续。
- 200’s:服务器成功接收,理解和处理浏览器请求时返回的成功代码。
- 300’s:当新资源替换所请求的资源时返回重定向代码。
- 400’s:客户端错误代码,表示请求存在问题。
- 500:服务器错误代码,表示请求已被接受,但服务器上的错误阻止了请求的完成。
在每个类中,存在各种服务器代码,并且可以由服务器返回。每个单独的代码都具有特定且独特的含义。
HTTP状态代码列表
有超过40种不同的服务器状态代码。但是,实际上你会遇到的不到十几个。如果您运营一个网站,那么就应该懂得如何处理这些代码,能够读懂HTTP状态代码后面的意义及时处理产生错误代码的问题。查看下面的HTTP状态代码列表:
200状态代码
- 200:“一切都好。”这是当网页或资源完全符合预期时所传递的代码。
300状态代码
- 301:“请求的资源已被永久迁移。”当网页或资源被永久替换为其他资源时,将传递此代码。它用于永久URL重定向。
- 302:“请求的资源已被临时移动。”此代码用于指示找到所请求的资源,而不是在预期的位置。它用于临时URL重定向。
- 304:“自上次访问以来,请求的资源未被修改。”此代码告诉浏览器存储在浏览器缓存中的资源未更改。它用于通过重用以前下载的资源来加速网页传送。
400状态代码
- 401:“未授权。” 当目标资源缺少有效的身份验证凭据时,服务器返回此信息。
- 403:“禁止访问该资源。”当用户尝试访问他们无权访问的内容时,将返回此代码。例如,尝试在不登录的情况下查看受密码保护的内容可能会产生403错误。
- 404:“找不到请求的资源。”这些消息中最常见的错误消息。此代码表示请求的资源不存在,并且服务器不知道它是否存在。
- 405:“不允许使用方法。” 这是在托管服务器(源服务器)支持接收的方法时生成的,但目标资源不支持。
- 406:“不可接受的响应。”所请求的资源能够仅根据请求中发送的Accept头生成不可接受的内容。
- 408:“请求超时。”当服务器在等待来自浏览器的完整请求时发生超时所生成的代码。换句话说,服务器没有获得浏览器发送的完整请求。一个可能的原因可能是网络拥塞导致浏览器和服务器之间数据包丢失。
- 410:“请求的资源不可用,不会再返回。”类似于404“未找到”代码,除了410表示条件是预期的并且是永久的。
-
429:“请求太多。” 当用户在给定时间内发送了太多请求(速率限制)时由服务器生成。这有时可能来自尝试访问您网站的bots或脚本。
请求太多导致的429错误码
- 499:“客户端关闭请求。” 当客户端在NGINX仍在处理请求时关闭请求,NGINX会返回此请求。
500个状态代码
-
500:“服务器上出现错误,无法完成请求。”一般代码仅表示“服务器内部错误”。服务器上出现问题,并且未提供所请求的资源。此代码通常由第三方插件,错误的PHP或甚至与数据库断开的连接导致。稍后我们将会写文章,说明如何修复WordPress数据库连接错误以及服务器内部500错误。
建立数据库连接时出错
- 501:“服务器不具备完成请求的功能。” 此错误表示服务器不支持完成请求所需的功能。这一般是Web服务器本身的问题,通常必须由主机解决。稍后,我们也将撰写文章说明如何解决服务器内部所导致的501错误。
- 502:“Bad Gateway。” 此错误代码通常表示一台服务器收到另一台服务器的无效响应。有时查询或请求将花费太长时间,因此它被服务器取消或终止,并且与数据库的连接中断。
- 503:“服务器现在无法处理此请求。”请求现在无法完成。此代码可能由无法处理其他请求的重载服务器返回。查看我们关于如何修复503服务不可用错误的教程。
- 504:“作为网关的服务器超时,等待另一台服务器响应。”当处理请求涉及两台服务器时,代码返回,第一台服务器超时等待第二台服务器响应。
了解有关HTTP状态代码的更多信息
上面的列表解释了您可能会定期遇到的大多数HTTP状态代码。但是,您可能会不时遇到更多不常见的其他HTTP状态代码。您可以在以下链接了解罕见HTTP状态代码的更多信息:
- 来自维基百科的HTTP状态代码的完整列表
- 来自Internet工程任务组(IETF)的状态代码定义。
- RFC 7231
闪电博=
Wbolt=