HTTP状态码大全
HTTP状态码分类
1xx
信息性状态码
请求已接收,继续处理
2xx
成功状态码
请求已成功被服务器接收、理解并处理
3xx
重定向状态码
需要客户端采取进一步的操作才能完成请求
4xx
客户端错误状态码
客户端请求包含语法错误或无法完成请求
5xx
服务器错误状态码
服务器在处理请求时发生内部错误
HTTP状态码列表
状态码名称描述
100Continue继续。客户端应继续其请求
101Switching Protocols切换协议。服务器根据客户端的请求切换协议
102Processing处理中。服务器已收到并正在处理请求
103Early Hints早期提示。用来在最终的HTTP消息之前返回一些响应头
200OK成功。请求已成功,请求所希望的响应头或数据体将随此响应返回
201Created已创建。请求成功且服务器已创建了新的资源
202Accepted已接受。服务器已接受请求,但尚未处理
203Non-Authoritative Information非授权信息。服务器已成功处理了请求,但返回的信息可能来自另一来源
204No Content无内容。服务器成功处理了请求,没有返回任何内容
205Reset Content重置内容。服务器成功处理了请求,但没有返回任何内容,并要求客户端重置文档视图
206Partial Content部分内容。服务器成功处理了部分GET请求
207Multi-Status多状态。代表之后的消息体将是一个XML消息
208Already Reported已报告。DAV绑定的成员已经在(多状态)响应之前的部分被列举,且未被再次包含
226IM UsedIM Used. 服务器已经满足了对资源的请求,对实体请求的一个或多个实体操作的结果表示
300Multiple Choices多种选择。针对请求,服务器可执行多种操作
301Moved Permanently永久移动。请求的资源已被永久移动到新位置
302Found临时移动。请求的资源临时从不同的URI响应请求
303See Other查看其它地址。使用GET方法定向获取请求资源
304Not Modified未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源
305Use Proxy使用代理。所请求的资源必须通过代理访问
306Switch Proxy切换代理。已废弃。表示后续请求应使用指定的代理
307Temporary Redirect临时重定向。与302类似,但客户端应保持请求方法不变
308Permanent Redirect永久重定向。与301类似,但客户端应保持请求方法不变
400Bad Request错误请求。服务器不理解请求的语法
401Unauthorized未授权。请求要求身份验证
402Payment Required需要付款。保留,将来使用
403Forbidden禁止。服务器拒绝请求
404Not Found未找到。服务器找不到请求的资源
405Method Not Allowed方法不允许。请求方法不被服务器允许
406Not Acceptable不接受。服务器无法根据客户端请求的内容特性完成请求
407Proxy Authentication Required需要代理授权。客户端必须先使用代理服务器进行验证
408Request Timeout请求超时。服务器等候请求时发生超时
409Conflict冲突。服务器在完成请求时发生冲突
410Gone已删除。请求的资源永久删除
411Length Required需要有效长度。服务器拒绝在没有定义Content-Length头的情况下接受请求
412Precondition Failed未满足前提条件。服务器未满足请求者在请求中设置的其中一个前提条件
413Payload Too Large请求实体过大。服务器无法处理请求,因为请求实体过大
414URI Too LongURI过长。请求的URI过长,服务器无法处理
415Unsupported Media Type不支持的媒体类型。请求的格式不受请求页面的支持
416Range Not Satisfiable请求范围不符合要求。无法满足请求的范围
417Expectation Failed未满足期望值。服务器未满足"Expect"请求头字段的要求
418I'm a teapot我是茶壶。超文本咖啡壶控制协议的笑话
421Misdirected Request误导请求。请求被定向到无法生成响应的服务器
422Unprocessable Entity无法处理的实体。请求格式正确,但语义错误
423Locked已锁定。当前资源被锁定
424Failed Dependency依赖关系失败。由于之前的请求失败,导致当前请求失败
425Too Early过早。服务器不愿意冒风险处理可能被重播的请求
426Upgrade Required需要升级。客户端应切换到不同协议
428Precondition Required要求先决条件。服务器要求请求包含条件
429Too Many Requests请求过多。用户在给定时间内发送了太多请求
431Request Header Fields Too Large请求头字段太大。请求头字段太大,服务器不愿处理请求
451Unavailable For Legal Reasons因法律原因不可用。因法律原因无法提供资源
500Internal Server Error服务器内部错误。服务器遇到错误,无法完成请求
501Not Implemented尚未实施。服务器不具备完成请求的功能
502Bad Gateway错误网关。服务器作为网关或代理,从上游服务器收到无效响应
503Service Unavailable服务不可用。服务器目前无法使用
504Gateway Timeout网关超时。服务器作为网关或代理,未及时从上游服务器收到请求
505HTTP Version Not SupportedHTTP版本不受支持。服务器不支持请求中所用的HTTP协议版本
506Variant Also Negotiates服务器存在内部配置错误
507Insufficient Storage存储空间不足
508Loop Detected检测到循环
510Not Extended未扩展
511Network Authentication Required网络认证需要
HTTP状态码详解

什么是HTTP状态码?

HTTP状态码(HTTP Status Code)是用来表示网页服务器HTTP响应状态的3位数字代码。所有的状态码的第一个数字代表了响应的五种状态之一。 HTTP状态码是服务器对浏览器说的话,用来表明请求是否成功,如果失败,是什么原因导致的失败。

HTTP状态码的分类

1xx - 信息性状态码

表示请求已被接收,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。

2xx - 成功状态码

表示请求已成功被服务器接收、理解、并接受。

3xx - 重定向状态码

表示需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的Location域中指明。

4xx - 客户端错误状态码

表示客户端发生错误,妨碍了服务器的处理。例如,请求语法错误、无效请求消息或者路由错误。客户端应当修改请求后再次发送。

5xx - 服务器错误状态码

表示服务器在处理请求的过程中发生了错误。这些状态码代表了服务器在处理请求时内部遇到错误。这些错误可能是服务器本身的错误,而不是请求出错。

常见HTTP状态码详解

200 OK

最常见的HTTP状态码,表示请求已成功,请求所希望的响应头或数据体将随此响应返回。实际的响应将取决于所使用的请求方法。在GET请求中,响应将包含与请求的资源相对应的实体。

301 Moved Permanently

被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一。如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器反馈回来的地址。

302 Found

请求的资源现在临时从不同的URI响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。

400 Bad Request

由于明显的客户端错误(例如,格式错误的请求语法、太大的大小、无效的请求消息或欺骗性路由请求),服务器不能或不会处理该请求。

401 Unauthorized

类似于403 Forbidden,401语义即"未认证",即用户没有必要的凭据。该状态码表示当前请求需要用户验证。该响应必须包含一个适用于被请求资源的WWW-Authenticate信息头用以询问用户信息。

403 Forbidden

服务器已经理解请求,但是拒绝执行它。与401响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。如果这不是一个HEAD请求,而且服务器希望能够讲清楚为何请求不能被执行,那么就应该在实体内描述拒绝的原因。

404 Not Found

请求失败,请求所希望得到的资源未被在服务器上发现。没有信息能够告诉用户这个状况到底是暂时的还是永久的。假如服务器知道情况的话,应当使用410状态码来告知旧资源因为某些内部的配置机制问题,已经永久的不可用,而且没有任何可以跳转的地址。

500 Internal Server Error

服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器的程序码出错时出现。

426 Upgrade Required

HTTP状态码在Web开发中的重要性

HTTP状态码对于Web开发者和系统管理员来说非常重要,它们可以帮助快速诊断问题。例如,当用户报告无法访问某个页面时, 开发者可以通过查看HTTP状态码来确定问题是出在客户端(4xx)还是服务器端(5xx)。此外,搜索引擎也会使用HTTP状态码来决定如何索引网页。

HTTP状态码与SEO的关系

HTTP状态码对SEO有重要影响。搜索引擎会根据状态码决定如何处理网页:

  • 200 OK:页面正常,可以被索引
  • 301 Moved Permanently:永久重定向,搜索引擎会更新索引中的URL
  • 302 Found:临时重定向,搜索引擎会保留原始URL在索引中
  • 404 Not Found:页面不存在,搜索引擎会从索引中移除该页面
  • 410 Gone:资源永久不可用,搜索引擎会更快地从索引中移除该页面
  • 500 Internal Server Error:服务器错误,搜索引擎可能会稍后重试

如何使用HTTP状态码进行故障排除

当遇到网站问题时,HTTP状态码是排查故障的重要线索:

4xx错误: 检查客户端请求是否正确,URL是否存在,身份验证是否有效。
5xx错误: 检查服务器日志,应用程序代码,服务器配置和资源使用情况。
3xx错误: 检查重定向配置是否正确,避免重定向循环。

HTTP状态码的最佳实践

使用正确的状态码: 确保API和网站返回准确的HTTP状态码,这有助于客户端正确处理响应。
自定义错误页面: 为常见的错误状态码(如404、500)创建友好的自定义错误页面,提升用户体验。
监控异常状态码: 设置监控系统,当出现大量4xx或5xx错误时发出警报。
正确处理重定向: 使用301表示永久重定向,302表示临时重定向,避免重定向链过长。