HTTP 状态码
HTTP 状态码用于表示服务器对请求的处理结果。状态码由三位数字组成,第一个数字定义了响应的类型:
1xx - 信息提示
这一类状态码表示服务器已接收请求,需要请求者继续执行操作。
100 Continue: 继续。客户端应继续其请求101 Switching Protocols: 切换协议。服务器根据客户端的请求切换协议102 Processing: 处理中。服务器收到并正在处理请求,但无响应可用
2xx - 成功
表示服务器成功处理了请求。
200 OK: 请求成功。一般用于 GET 与 POST 请求201 Created: 已创建。成功请求并创建了新的资源202 Accepted: 已接受。已经接受请求,但未处理完成204 No Content: 无内容。服务器成功处理,但未返回内容206 Partial Content: 部分内容。服务器成功处理了部分请求
3xx - 重定向
表示要完成请求,需要进一步的操作。
300 Multiple Choices: 多种选择。请求的资源可包括多个位置301 Moved Permanently: 永久移动。请求的资源已被永久移动到新位置302 Found: 临时移动。请求的资源临时被移动303 See Other: 查看其它地址。使用 GET 和 POST 请求查看304 Not Modified: 未修改。所请求的资源未修改,使用缓存307 Temporary Redirect: 临时重定向。与 302 类似308 Permanent Redirect: 永久重定向。与 301 类似
4xx - 客户端错误
表示客户端可能出现错误,导致服务器无法处理。
400 Bad Request: 客户端请求的语法错误,服务器无法理解401 Unauthorized: 请求要求用户的身份认证403 Forbidden: 服务器理解请求但拒绝执行404 Not Found: 服务器无法根据客户端的请求找到资源405 Method Not Allowed: 客户端请求中的方法被禁止406 Not Acceptable: 服务器无法根据客户端请求的内容特性完成请求408 Request Time-out: 服务器等待客户端发送的请求时间过长409 Conflict: 服务器处理请求时发生了冲突413 Request Entity Too Large: 请求的实体过大,服务器无法处理414 Request-URI Too Large: 请求的 URI 过长415 Unsupported Media Type: 服务器无法处理请求附带的媒体格式429 Too Many Requests: 用户在给定的时间内发送了太多请求
5xx - 服务器错误
表示服务器在处理请求的过程中发生了错误。
500 Internal Server Error: 服务器内部错误,无法完成请求501 Not Implemented: 服务器不支持请求的功能,无法完成请求502 Bad Gateway: 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应503 Service Unavailable: 由于临时的服务器维护或者过载,服务器当前无法处理请求504 Gateway Time-out: 作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器收到响应505 HTTP Version not supported: 服务器不支持请求的 HTTP 协议的版本
常见应用场景
身份验证
- 需要登录时返回
401 - 无权限访问时返回
403
资源访问
- 成功获取资源返回
200 - 成功创建资源返回
201 - 资源不存在返回
404
重定向
- 资源永久移动使用
301 - 临时重定向使用
302 - 使用缓存返回
304
请求错误
- 请求格式错误返回
400 - API 调用频率超限返回
429
服务器问题
- 服务器错误返回
500 - 服务维护时返回
503