HTTP状态码是用以表示网页服务器超文本传输协议响应状态的3位数字代码,由RFC 2616规范定义,并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774与RFC 4918等规范扩展。状态码的第一位数字决定了不同的响应状态,具体分类及含义如下:
1开头
- 含义:请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。
- 常见状态码:无具体常见状态码,因为1xx状态码主要是临时响应,用于指示请求已被接收并正在处理中。
2开头
- 含义:请求成功。表示请求已成功被服务器接收、理解、并接受。
- 常见状态码:
- 200:OK,表示请求成功,服务器已成功处理了请求。
- 206:Partial Content,表示服务器成功处理了部分GET请求。
3开头
- 含义:请求被重定向。这类状态码代表需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的Location域中指明。
- 常见状态码:
- 301:Moved Permanently,表示永久性重定向,请求的网页已永久移动到新位置。
- 302:Found,表示临时性重定向,资源只是临时被移动,客户端应继续使用原有URL。
- 304:Not Modified,表示资源未修改,客户端应使用本地缓存。
4开头
- 含义:请求错误。这类状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。除非响应的是一个HEAD请求,否则服务器就应该返回一个解释当前错误状况的实体,以及这是临时的还是永久性的状况。
- 常见状态码:
- 400:Bad Request,表示请求报文存在语法错误。
- 401:Unauthorized,表示请求要求身份验证,对于需要登录的网页,服务器可能返回此响应。
- 403:Forbidden,表示服务器拒绝请求。
- 404:Not Found,表示服务器找不到请求的网页。
- 405:Method Not Allowed,表示禁用请求中指定的方法。
- 406:Not Acceptable,表示无法使用请求的内容特性响应请求的网页。
- 407:Proxy Authentication Required,表示此状态代码与401类似,但指定请求者应当授权使用代理。
5开头
- 含义:服务器错误。这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。
- 常见状态码:
- 500:Internal Server Error,表示服务器遇到错误,无法完成请求。
- 501:Not Implemented,表示服务器不具备完成请求的功能。
- 502:Bad Gateway,表示服务器作为网关或代理,从上游服务器收到无效响应。
- 503:Service Unavailable,表示服务器目前无法使用(由于超载或停机维护)。
- 504:Gateway Timeout,表示服务器作为网关或代理,但是没有及时从上游服务器收到请求。
- 505:HTTP Version Not Supported,表示服务器不支持请求中所用的HTTP协议版本。