Views: 14
HTTP 状态码
HTTP 状态码的第一个数字定义了响应的类别。以下是每个数字的一般含义:
- 1xx(100-199):信息响应,表示请求已接收,继续处理。
- 2xx(200-299):成功响应,表示请求已被成功接收、理解、并接受。
- 3xx(300-399):重定向,要完成请求,需要进一步操作。通常,这些状态码用来重定向。
- 4xx(400-499):客户端错误,请求包含语法错误或无法完成请求。
- 5xx(500-599):服务器错误,服务器在处理请求的过程中发生了错误。
信息响应
100 Continue:HTTP/1.1,RFC 7231,服务器已接收到请求的初始部分,客户端应继续发送其余的请求。
101 Switching Protocols:HTTP/1.1,RFC 7231,服务器将遵循客户端的请求切换到另一个协议。
102 Processing(WebDAV):HTTP/1.1,RFC 2518,服务器已接收并正在处理请求,但无响应可用。
103 Early Hints:HTTP/1.1,RFC 8297,用于在最终 HTTP 响应之前,提供可能的响应头。
成功响应
200 OK:HTTP/1.0,RFC 1945,请求成功。
201 Created:HTTP/1.0,RFC 1945,请求已成功,并因此创建了一个新的资源。
202 Accepted:HTTP/1.0,RFC 1945,请求已被接受进行处理,但处理尚未完成。
203 Non-Authoritative Information:HTTP/1.1,RFC 7231,服务器已成功处理了请求,但返回的信息可能来自另一来源。
204 No Content:HTTP/1.0,RFC 1945,服务器成功处理了请求,但没有返回任何内容。
205 Reset Content:HTTP/1.1,RFC 7231,服务器成功处理了请求,并且没有返回任何内容,而且要求请求者重置文档视图。
206 Partial Content:HTTP/1.1,RFC 7233,服务器已成功处理了部分 GET 请求。
207 Multi-Status(WebDAV):HTTP/1.1,RFC 4918,用于将多个状态码的响应集合在一起返回。响应体通常是一个 XML 文档,包含了对多个子请求的状态报告。
208 Already Reported(WebDAV):HTTP/1.1,RFC 5842,用于避免在内部成员实体的集合中的 “多状态” 响应中重复列出 “绑定” 成员。
218 This is fine(Apache Web Server):Apache Web Server,非标准,用于表示请求已经成功处理,没有任何问题。
219 Met by(Apache Web Server):Apache Web Server,非标准,用于表示请求已经成功处理,且结果是由多个服务器协作完成的。
220 IM Used(Google):Google,非标准,用于表示服务器已完成对资源的 GET 请求,并且响应是对当前实例应用的结果。
226 IM Used(HTTP Delta encoding):HTTP/1.1,RFC 3229,服务器已完成对资源的 GET 请求,并且响应是对当前实例应用的结果。
重定向
300 Multiple Choices:HTTP/1.1,RFC 7231,请求的资源有多种选择,服务器不能决定使用哪一项。
301 Moved Permanently:HTTP/1.0,RFC 1945,请求的资源已被永久移动到新位置,将来任何新的请求都应使用其中的一个 URI。
302 Found:HTTP/1.0,RFC 1945,请求的资源现在临时从不同的 URI 响应请求,由于这样的重定向是临时的,客户端应继续使用原有的 URI。
304 Not Modified:HTTP/1.0,RFC 1945,如果客户端已经有资源的缓存,并且没有被修改,服务器返回此状态码表示客户端的副本是最新的,因此不需要再次获取资源。
306 Switch Proxy:HTTP/1.1,RFC 2616,此状态码在早期的 HTTP/1.1 草案中定义,但在最终版本中被废弃。这个状态码不再被使用,但是被保留了下来。
307 Temporary Redirect:HTTP/1.1,RFC 7231,请求的资源现在临时从不同的 URI 响应请求,由于这样的重定向是临时的,客户端应继续使用原有的 URI。
308 Permanent Redirect:HTTP/1.1,RFC 7538,请求的资源已被永久移动到新位置,我们应使用 GET 方法获取资源。
310 Too many Redirects:非标准,用于表示一个 URI 已经被重定向过多次,通常用于浏览器。
客户端错误
400 Bad Request:HTTP/1.1,RFC 7231,服务器无法理解请求的格式,因为客户端的语法错误。
401 Unauthorized:HTTP/1.1,RFC 7235,请求需要用户验证。
402 Payment Required:HTTP/1.1,RFC 7231,此状态码是为了将来可能的需求而保留的。
403 Forbidden:HTTP/1.1,RFC 7231,服务器理解请求,但是拒绝执行它。
404 Not Found:HTTP/1.1,RFC 7231,服务器找不到请求的资源。
405 Method Not Allowed:HTTP/1.1,RFC 7231,请求方法被禁止。
406 Not Acceptable:HTTP/1.1,RFC 7231,服务器无法根据客户端请求的内容特性完成请求。
408 Request Timeout:HTTP/1.1,RFC 7231,服务器等候请求时发生超时。
409 Conflict:HTTP/1.1,RFC 7231,服务器在完成请求时发生冲突。服务器必须在响应中包含足够的信息以供用户发现冲突源。
410 Gone:HTTP/1.1,RFC 7231,如果请求的资源已永久删除,服务器就会返回此响应。
413 Payload Too Large:HTTP/1.1,RFC 7231,请求实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个 Retry-After 的响应头。
414 URI Too Long:HTTP/1.1,RFC 7231,请求的 URI(通常为 URL)过长,服务器无法处理。
415 Unsupported Media Type:HTTP/1.1,RFC 7231,请求的格式不受请求页面的支持。
416 Requested Range Not Satisfiable:HTTP/1.1,RFC 7233,如果页面无法提供请求的范围,则服务器会返回此状态码。
417 Expectation Failed:HTTP/1.1,RFC 7231,服务器未满足”期望”请求标头字段的要求。
418 I’m a teapot:HTTP/1.1,RFC 2324,此代码是为了满足 1998 年 4 月 1 日的愚人节传统,由 RFC 2324 ‘超文本咖啡壶控制协议’定义,并不是真正的 HTTP 状态码。
420 Method Failure:HTTP/1.1,Spring Framework,当使用 Spring Framework 的 @ResponseStatus 注解时,此状态码用于表示方法失败。
422 Unprocessable Entity:HTTP/1.1,RFC 4918,请求格式正确,但语义错误,无法被服务器理解。
423 Locked:HTTP/1.1,RFC 4918,当前资源被锁定。
424 Failed Dependency(WebDAV):HTTP/1.1,RFC 4918,由于之前的请求失败,所以此次请求失败。
425 Too Early:HTTP/1.1,RFC 8470,服务器不愿意冒着重放攻击的风险来处理请求。
426 Upgrade Required:HTTP/1.1,RFC 7231,客户端应切换到其他协议,如 TLS/1.0。
428 Precondition Required:HTTP/1.1,RFC 6585,原服务器要求请求是有条件的。
429 Too Many Requests:HTTP/1.1,RFC 6585,用户在给定的时间内发送了太多的请求。
431 Request Header Fields Too Large:HTTP/1.1,RFC 6585,服务器不愿处理请求,因为一个或多个头字段过大。
444 No Response:非标准,Nginx,在 Nginx 日志中用来表示服务器返回空响应,用来拒绝恶意的连接。
449 Retry With:非标准,Microsoft,请求应该在执行某些适当的动作后重试。
450 Blocked by Windows Parental Controls:HTTP/1.1,Microsoft,此状态码由 Windows Parental Controls 返回,表示访问被阻止。
451 Unavailable For Legal Reasons:HTTP/1.1,RFC 7725,用户请求的资源由于法律原因不可用。
498 Invalid Token:HTTP/1.1,Esri,返回此状态码表示令牌无效。
499 Token Required:HTTP/1.1,Esri,返回此状态码表示需要令牌。
服务器错误
500 Internal Server Error:HTTP/1.0,RFC 1945,服务器遇到错误,无法完成请求。
501 Not Implemented:HTTP/1.0,RFC 1945,服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。
502 Bad Gateway:HTTP/1.0,RFC 1945,服务器作为网关或代理,从上游服务器收到无效响应。
503 Service Unavailable:HTTP/1.0,RFC 1945,服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。
504 Gateway Timeout:HTTP/1.1,RFC 7231,服务器作为网关或代理,但是没有及时从上游服务器收到请求。
505 HTTP Version Not Supported:HTTP/1.1,RFC 7231,服务器不支持请求中所用的 HTTP 协议版本。
506 Variant Also Negotiates:HTTP/1.1,RFC 2295,服务器存在内部配置错误:透明内容协商为请求的资源,找到了循环引用。
507 Insufficient Storage(WebDAV):HTTP/1.1,RFC 4918,服务器无法存储完成请求所必须的内容。
508 Loop Detected(WebDAV):HTTP/1.1,RFC 5842,服务器在处理请求时检测到无限循环。
509 Bandwidth Limit Exceeded:HTTP/1.1,Apache Web Server/cPanel,此状态码由 Apache Web Server 返回,表示已超过带宽限制。
510 Not Extended:HTTP/1.1,RFC 2774,进一步扩展以获取请求的资源。
511 Network Authentication Required:HTTP/1.1,RFC 6585,客户端需要进行身份验证才能获得网络访问。
520 Unknown Error:非标准,Cloudflare,服务器返回一个未知的响应。
521 Web Server Is Down:非标准,Cloudflare,源服务器拒绝了连接。
522 Connection Timed Out:非标准,Cloudflare,Cloudflare 无法建立到源服务器的 TCP 连接。
523 Origin Is Unreachable:非标准,Cloudflare,Cloudflare 无法到达源服务器。
524 A Timeout Occurred:非标准,Cloudflare,Cloudflare 能够完成到源服务器的 TCP 连接,但是源服务器没有在适当的时间内返回响应。
525 SSL Handshake Failed:非标准,Cloudflare,Cloudflare 无法在源服务器上完成 SSL 握手。
526 Invalid SSL Certificate:非标准,Cloudflare,Cloudflare 接收到一个无效的 SSL 证书。
527 Railgun Error:非标准,Cloudflare,Railgun 监听器返回了错误。
529 Site is overloaded:HTTP/1.1,Qualys,返回此状态码表示网站过载。
530 Site is frozen:HTTP/1.1,Pantheon,返回此状态码表示网站已冻结。
598 Network read timeout error:HTTP/1.1,未知,返回此状态码表示网络读取超时。
599 Network connect timeout error:HTTP/1.1,未知,返回此状态码表示网络连接超时。