HTTP 状态码
HTTP状态码(HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的数字代码。这些状态码由RFC 2616规范定义,并得到其他多个规范的扩展。HTTP状态码由三位数字组成,第一个数字表示响应的类型,后两个数字表示具体的响应代码。根据HTTP协议的规定,状态码被分为五个类别,每个类别都有特定的含义:
1xx(信息性状态码)
表示请求已被接收,继续处理。这类状态码一般不会出现在浏览器的最终显示中,而是在通信过程中起到辅助作用。
100(Continue 继续)
服务器已经接收到请求的一部分,客户端可以继续发送剩余的请求。服务器已接收到请求头,客户端可以继续发送请求体。
101(Switching Protocols 切换协议)
服务器根据客户端的请求切换协议。例如,切换到更高级的HTTP/1.1协议。例如,从 HTTP/1.1 切换到 WebSocket。
102(Processing 处理中,WebDAV 扩展)
服务器已收到并正在处理请求,但尚未产生响应。
2xx(成功状态码)
表示请求已成功被服务器接收、理解和处理。
200(OK 成功)
请求已成功处理,并返回所请求的资源。
201(Created 已创建)
请求已成功处理,并在服务器上创建了新的资源。通常用于 POST 或 PUT 请求后。
202(Accepted 已接受)
服务器已接受请求,但尚未处理。常用于异步处理场景。
203(Non-Authoritative Information 非权威性信息)
服务器已成功处理了请求,但返回的响应头信息可能来自另一来源。
204(No Content 无内容)
服务器成功处理了请求,但没有返回任何内容。
205(Reset Content 重置内容)
服务器成功处理了请求,且没有返回任何内容,但要求客户端重置文档视图(例如,清除表单内容以重新输入)。
206(Partial Content 部分内容)
服务器成功处理了部分请求(即对文档的某个部分进行请求)。
207(Multi-Status 多状态,WebDAV 扩展)
返回多个独立的响应信息,用于批量操作时指示各个子请求的状态。
208(Already Reported 已报告,WebDAV 扩展)
用于避免在集合资源中重复报告成员状态。
3xx(重定向状态码)
表示需要进一步操作(通常是 URL 跳转)才能完成请求。
301(Moved Permanently 永久重定向)
请求的资源已经被永久移动到新的URL上,之后的请求都应使用新的 URL。
302(Found 临时重定向)
请求的资源暂时被移动到了新的URL上,客户端应继续使用原有URL进行以后的请求(HTTP/1.0)或自动访问新的URL(HTTP/1.1及之后的版本)。
303(See Other 查看其他位置)
与302类似,但明确要求客户端使用GET方法获取资源。
304( Not Modified 未修改)
客户端发送了一个条件请求(如使用If-Modified-Since或If-None-Match头),服务器判断资源未发生变化,返回此状态码。客户端使用缓存的版本,服务器告知资源未发生变化,不需要传输。
307(Temporary Redirect 临时重定向)
与302类似,但明确要求客户端在后续请求中继续使用POST方法(针对302可能改变请求方法的问题)。
308(Permanent Redirect 永久重定向,RFC 7538)
与 301 类似,但要求客户端在重定向时保持原有请求方法和请求体。
4xx(客户端错误状态码)
表示客户端发送的请求有错误,服务器无法理解或无法完成。
400(Bad Request 错误请求)
服务器无法理解请求的语法。
401(Unauthorized 未授权):请求需要身份验证,但客户端没有提供有效的凭据,或者凭据不被服务器接受。
- 401.1:登录失败。
- 401.2:服务器配置问题导致登录失败。
- 401.3:ACL禁止访问资源。
- 401.4:授权被筛选器拒绝。
- 401.5:ISAPI或CGI授权失败。
- 401.7:访问被Web服务器上的URL授权策略拒绝(IIS 6.0专用)。
402(Payment Required 需要付款)
该状态码已保留,但未被使用。
403(Forbidden 禁止访问):服务器拒绝请求访问。
- 403.1:禁止可执行访问。
- 403.2:禁止读访问。
- 403.3:禁止写访问。
- 403.4:要求SSL。
- 403.5:要求 SSL 128 位加密。
- 403.6:IP地址被拒绝。
- 403.7:要求客户端证书。
- 403.8:站点访问被拒绝。
- 403.9:连接的用户过多。
- 403.10:配置无效。
- 403.11:密码更改。
- 403.12:拒绝访问映射表。
- 403.13:客户端证书被吊销。
- 403.14:拒绝目录列表。
- 403.15:超出客户端访问许可。
- 403.16:客户端证书不受信任或无效。
- 403.17:客户端证书已过期或尚未生效。
- 403.18:在当前的应用程序池中不能执行所请求的URL(IIS 6.0专用)。
- 403.19:不能为这个应用程序池中的客户端执行CGI(IIS 6.0专用)。
- 403.20:Passport登录失败(IIS 6.0专用)。
404(Not Found 未找到):服务器找不到请求的资源。
- 404.0:没有找到文件或目录。
- 404.1:无法在所请求的端口上访问Web站点。
- 404.2:Web服务扩展锁定策略阻止本请求。
- 404.3:MIME映射策略阻止本请求。
405( Method Not Allowed 方法不被允许)
用来访问本页面的HTTP谓词不被允许(例如,不允许使用POST方法)。请求方法(如 POST、PUT 等)不被允许使用在该资源上。
406(Not Acceptable 无法接受)
客户端浏览器不接受所请求页面的MIME类型。
407(Proxy Authentication Required 要求代理身份验证)
请求需要通过代理服务器进行身份验证。
408(Request Timeout 请求超时)
客户端没有在服务器期望的时间内完成请求。
409(Conflict 冲突)
请求因为与资源的当前状态冲突而失败。
410(Gone 永远不可用)
请求的资源已被永久删除,且不会再有可用的副本。
411(Length Required 需要有效长度)
服务器拒绝接受没有定义Content-Length头的请求(针对HTTP/1.1)。
412(Precondition Failed 先决条件失败)
请求头中的条件导致请求失败(例如,If-Match)。
413(Payload Too Large 请求实体太大)
服务器无法处理请求,因为请求实体太大,超过了服务器的处理能力或配置的限制。
414(URI Too Long 请求URI太长)
请求的URI太长,服务器无法处理。
415(Unsupported Media Type 不支持的媒体类型)
请求的格式不被请求方法所支持(例如,使用POST方法上传文件时,文件类型不被允许)。
416(Range Not Satisfiable 请求范围不符合要求)
请求的范围无效,无法满足请求。
417(Expectation Failed 执行失败,预期失败)
期望的请求头“Expect”值未实现。
422(Unprocessable Entity 不可处理的实体)
请求实体在语义上正确,但无法按照请求的格式进行处理(WebDAV)。
423(Locked 锁定的错误)
资源被锁定,无法完成请求。
424(Failed Dependency 方法失败)
请求方法失败或请求的消息体失败(WebDAV)。
426(Upgrade Required 升级所需的)
客户端应切换到TLS/1.0(或其他更高版本的协议)以进行请求。
428(Precondition Required 先决条件必需)
请求需要满足特定的前提条件。
429(Too Many Requests 请求过多)
用户在短时间内发送了太多的请求(通常用于防止恶意攻击和爬虫)。
431(Request Header Fields Too Large 请求头字段过大)
服务器不愿意处理请求,因为请求头字段太大。
451(Unavailable For Legal Reasons 因法律原因被阻止)
请求因法律原因被阻止(例如,由于版权问题)。
499 (Client Closed Request 客户端关闭请求,Nginx 非标准)
HTTP状态码499是一个非标准的状态码,它表示服务器已经成功处理了请求,但在返回响应之前,客户端主动关闭了连接。这个状态码通常由Nginx服务器引入和记录。当客户端(如浏览器)在等待服务器响应的过程中关闭连接时,如果服务器是Nginx,那么它会将此情况记录为499状态码。
5xx(服务器错误状态码)
表示服务器在处理请求时发生了错误。表示服务器在处理请求时发生内部错误,导致无法完成请求。
500(Internal Server Error 内部服务器错误):服务器在执行请求时发生了错误。
- 500.100:内部ASP错误。
- 500.12:应用程序正忙于在Web服务器上重新启动。
- 500.13:Web服务器太忙。
- 500.14:应用程序无效。
- 500.15:不允许直接请求Global.asa。
- 500.16:UNC授权凭据不正确(IIS 6.0专用)。
- 500.18:URL授权存储不能打开(IIS 6.0专用)。
501(Not Implemented 未实现)
服务器不支持请求所需的功能或方法。
502(Bad Gateway 错误网关)
作为网关或代理的服务器从上游服务器接收到无效响应。
503(Service Unavailable 服务不可用)
服务器由于过载或维护暂时无法处理请求,通常为临时状态。
504(Gateway Timeout 网关超时)
作为网关或代理的服务器未能及时从上游服务器接收到响应。
505(HTTP Version Not Supported HTTP 版本不受支持)
服务器不支持请求中使用的 HTTP 协议版本。
506(Variant Also Negotiates 变体也协商)
服务器内部配置错误,导致内容协商出现循环引用。
507(Insufficient Storage 存储空间不足)
服务器无法存储完成请求所必需的内容(WebDAV 扩展)。
508(Loop Detected 循环引用检测)
服务器检测到无限循环(WebDAV 扩展)。
510(Not Extended 扩展不满足要求)
服务器要求客户端提供更多扩展信息以完成请求。
511(Network Authentication Required 需要网络认证)
客户端必须先进行网络认证才能获得网络访问权限(常见于捕获门户)。