HTTP Status Code用来指示HTTP协议层面的请求状态。它由一个数字和一个描述消息构成,比如200 OK。有以下几类状态码。
2xx:执行成功。4xx:客户端的错误,通常情况下客户端需要修改请求然后再次发送请求。5xx:服务端的错误。
| Status Code | 描述说明 |
|---|---|
| 200 OK | 执行成功。 |
| 201 Created | 资源创建成功,应该在HTTP Response Header中返回Location来提供新创建资源的URL地址。 |
| 202 Accepted | 服务端已经接受了请求,但是并未处理完成,适用于一些异步操作。 |
| 204 No Content | 执行成功,但是不会在HTTP Response Body中放置数据。 |
| 400 Bad Request | 客户端请求错误,客户端应该根据HTTP Response Body中的错误描述来修改请求,然后才能再次发送。 |
| 401 Unauthorized | 客户端未提供授权信息。 |
| 403 Forbidden | 客户端无权访问(客户端可能已经提供了授权信息,但是权限不够)。如果出于信息隐藏的目的,也可以使用404 Not Found来替代。 |
| 404 Not Found | 客户端请求的资源不存在。 |
| 405 Method Not Allowed | 客户端使用了不被允许的HTTP Method。比如某一个URL只允许POST,但是客户端采用了GET。 |
| 406 Not Acceptable | 客户端发送的Accept不被支持。比如客户端发送了Accept:application/xml,但是服务器只支持Accept:application/json。 |
| 409 Conflict | 客户端提交的数据过于陈旧,和服务端的存在冲突,需要客户端重新获取最新的资源再发起请求。 |
| 415 Unsupported Media Type | 客户端发送的Content-Type不被支持。比如客户端发送了Content-Type:application/xml,但是服务器只支持Content-Type:application/json。 |
| 429 Too Many Requests | 客户端在指定的时间内发送了太多次数的请求。用于限速,比如只允许客户端在1分钟内发送100次请求,客户端在发送101次请求的时候,会得到这样的响应。 |
| 500 Internal Server Error | 服务器遇见了未知的内部错误。 |
| 501 Not Implemented | 服务器还未实现次功能。 |
| 503 Service Unavailable | 服务器繁忙,暂时无法处理客户端的请求。 |
https://tools.ietf.org/html/rfc7231#section-6