HTTP请求状态码,是客户端向服务器发送了请求后,服务器给客户端返回的请求结果.客户端借助状态码,可以知道当前请求的状态是成功还是失败,如果失败了,是客户端出问题了还是服务端的问题.常用的HTTP状态码可以分为以下5个大类:
状态码 | 类别 | 原因短语/描述 |
1xx | Informational信息性状态码 | 临时响应/接受的请求正在处理 |
2xx | Success成功状态码 | 请求正常处理完毕 |
3xx | Redirection重定向状态码 | 重定向,要附加额外的操作可以完成请求 |
4xx | Client Error客户端错误 | 客户端异常,服务端无法处理请求 |
5xx | Server Error 服务端错误 | 服务端处理请求出错 |
2xx: 表明请求被正常处理了
- 200: OK.请求已经正常处理
- 204: 请求处理成功,但是没有任何资源可以返回给客户端的.一般情况下是客户端给服务端发送了请求,而服务端不需要对客户端发送新消息的时候.
- 206: Partial Content 对某一部分资源的请求,该状态码表示客户端进行了范围请求,服务器也成功的执行了这部分的get请求,响应报文中包含由Content-Range指定范围的实体内容.
3xx:重定向,表示浏览器需要经过某些特殊的操作才可以正确的处理请求
- 301:永久重定向,请求的资源已经被分配了新的URI.以后应该使用资源现在所指的URI.
- 302:临时重定向.和301相似,但302代表的资源不是永久性移动,只是临时性质的.也就是说,已经移动的资源对应的URI将来还可能发生变化.
- 303:表示由于请求对应的资源存在这另外一个URL,应该使用GET方法重定向获取请求的资源.303和302状态码表示的功能相同,只是303明确表示客户端应该使用get方法请求资源.
- 304 资源已经找到,但是不符合请求条件.指客户端发送带有附加条件的请求,服务端允许客户端的请求访问资源,但是由于请求不满足条件,就直接返回304.
- 307: 临时重定向,与302表示相同的意义.
4xx:表示客户端错误
- 400:服务器无法理解客户端发送的请求,请求报文可能存在语法错误
- 401:表示发送的请求需要有通过http认证的认证信息,常用的http认证有BASIC认证、DIGEST认证等
- 403:没有权限,请求被服务器拒绝
- 404:不存在,服务器上没有请求的资源.
5xx:表示服务器错误
- 500: 服务器内部错误,可能是服务器在执行请求时发生了错误,也可能是web应用存在bug或某些临时故障
- 503:表示服务器超负荷或者是停止工作状态,无法处理请求.