HTTP状态码是用以表示网页服务器超文本传输协议响应状态的数字代码,由RFC 2616规范定义,并得到其他多个规范的扩展。HTTP状态码由三位数字组成,分为五个类别,每个类别有特定的含义。以下是HTTP状态码的详细介绍:
1. 1xx(信息性状态码)
表示服务器已经接收到请求,正在处理或者需要进一步操作。这些状态码并不表示成功或失败,仅用于传递信息。
- 100 Continue:表示服务器已经接收到请求的头部,并且客户端应该继续发送请求的主体部分。
- 101 Switching Protocols:表示服务器已经理解并接受了客户端的请求,将通过协议升级的方式切换到新的协议。
2. 2xx(成功状态码)
表示服务器已经成功接收、理解和处理了请求。
- 200 OK:表示请求成功,服务器已经成功处理了请求。
- 201 Created:表示请求成功,并且服务器已经创建了新的资源。
- 202 Accepted:表示请求已被接受进行处理,但处理尚未完成。
- 203 Non-Authoritative Information:表示返回的信息来自缓存,但并非原始服务器。
- 204 No Content:表示请求成功,但服务器没有返回任何内容。
- 205 Reset Content:表示请求已成功,服务器已重置内容,并返回空响应体。
- 206 Partial Content:表示客户端进行了范围请求,服务器成功执行了这部分的GET请求。
3. 3xx(重定向状态码)
表示客户端需要采取进一步的操作才能完成请求。
- 300 Multiple Choices:表示多种选择,即所请求的资源对应着多个URL。
- 301 Moved Permanently:表示请求的资源已经永久移动到新的URL。
- 302 Found:表示请求的资源已经临时移动到新的URL(但在HTTP 1.1规范中被视为临时重定向,相当于303)。
- 303 See Other:表示服务器将响应定向到另一个URI,但客户端应使用GET方法请求该URI。
- 304 Not Modified:表示客户端发送的请求资源在服务器上没有修改,可以直接使用本地缓存的副本。
- 305 Use Proxy:已被废弃,表示所请求的资源必须通过代理服务器访问。
- 307 Temporary Redirect:表示请求的资源临时从不同的URI响应请求。
- 308 Permanent Redirect:表示请求的资源已被永久重定向到另一个URI。
4. 4xx(客户端错误状态码)
表示客户端发送的请求有错误,服务器无法处理该请求。
- 400 Bad Request:表示客户端发送的请求有语法错误,服务器无法理解。
- 401 Unauthorized:表示客户端需要进行身份验证才能获取请求的资源。
- 402 Payment Required:已保留但未使用,表示支付要求。
- 403 Forbidden:表示服务器拒绝了客户端的请求。
- 404 Not Found:表示请求的资源不存在。
- 405 Method Not Allowed:表示请求方法不被允许。
- 406 Not Acceptable:表示客户端浏览器不接受所请求页面的MIME类型。
- 407 Proxy Authentication Required:要求代理身份验证。
- 408 Request Timeout:表示请求超时。
- 409 Conflict:表示请求与服务器资源的当前状态冲突。
- 410 Gone:表示请求的资源已永久删除,且不会再有可用的位置。
- 411 Length Required :表示服务器拒绝在没有
Content-Length
头的情况下接受请求。 - 412 Precondition Failed:表示前提条件失败。
- 413 Payload Too Large:表示请求实体太大。
- 414 URI Too Long:表示请求的URI太长。
- 415 Unsupported Media Type:表示不支持的媒体类型。
- 416 Range Not Satisfiable:表示无法满足所请求的范围。
- 417 Expectation Failed:表示期望失败。
- 418 I'm a teapot:一个超文本咖啡壶控制协议的参考响应,表示拒绝执行一个命令。
- 421 Misdirected Request:表示请求被错误地定向到无法处理该请求的服务器。
- 422 Unprocessable Entity(WebDAV):表示请求无法被处理,因为包含无效的数据。
- 423 Locked(WebDAV):表示资源被锁定。
- 424 Failed Dependency(WebDAV):表示由于之前的请求失败,导致依赖的请求也无法完成。
- 426 Upgrade Required:表示客户端应升级到指定协议版本才能使用服务器。
- 428 Precondition Required:表示请求必须包含某些前提条件。
- 429 Too Many Requests:表示服务器在限制时间段内接收到的请求数量超过了限制。
- 431 Request Header Fields Too Large:表示服务器拒绝处理请求,因为请求头字段太大。
- 451 Unavailable For Legal Reasons:表示由于法律原因,资源不可用。
5. 5xx(服务器错误状态码)
表示服务器在处理请求时发生了错误。
- 500 Internal Server Error:表示服务器在处理请求时发生了未知的内部错误。
- 501 Not Implemented:表示服务器不支持请求的功能,无法完成请求。
- 502 Bad Gateway:表示服务器作为网关或代理,从上游服务器接收到无效的响应。
- 503 Service Unavailable:表示服务器暂时无法处理请求,通常是由于服务器过载或维护。
- 504 Gateway Timeout:表示作为网关或代理工作的服务器未及时从上游服务器收到请求。
- 505 HTTP Version Not Supported:表示服务器不支持请求中所用的HTTP协议版本。
- 506 Variant Also Negotiates:表示服务器内部配置错误,导致无法完成请求。
- 507 Insufficient Storage:表示服务器无法存储完成请求所必需的数据。
- 508 Loop Detected:表示服务器在处理请求时检测到无限循环。
- 510 Not Extended:表示服务器不支持请求中的扩展功能。
- 511 Network Authentication Required:表示客户端需要进行身份验证才能访问网络资源。