API设计中的常见HTTP状态码


前言

客户端的用户发起的每一次请求,服务器都必须给出响应。响应包括 HTTP 状态码和数据两部分,本文主要对常见的HTTP状态码进行了整理,方便自己以及大家进行学习和查阅。


一、HTTP状态码是什么?

HTTP 状态码就是一个三位数,分成五个类别。这五大类总包含了100多种状态码,覆盖了绝大部分可能遇到的情况。每一种状态码都有标准的(或者约定的)解释,客户端只需查看状态码,就可以判断出发生了什么情况,所以服务器应该返回尽可能精确的状态码。

五类状态码分别如下:
   	 1xx:相关信息
	 2xx:操作成功
	 3xx:重定向
	 4xx:客户端错误
 	 5xx:服务器错误

二、常见状态码

1. 状态码2xx

200 状态码表示操作成功,但是不同的方法可以返回更精确的状态码。

GET: 200 OK 表示一切正常 
POST: 201 Created 表示新的资源已经成功创建 
PUT: 200 OK 
PATCH: 200 OK 
DELETE: 204 No Content 表示资源已经成功删除

2.状态码3xx

API 用不到 301 状态码(永久重定向)和 302 状态码(暂时重定向, 307 也是这个含义),因为它们可以由应用级别返回,浏览器会直接跳转,API 级别可以不考虑这两种情况。
API 用到的 3xx 状态码,主要是 303 See Other ,表示参考另一个 URL。它与 302 和 307 的含义一样,也是"暂时重定向",区别在于 302 和 307 用于 GET 请求,而 303 用于 POST 、 PUT 和 DELETE 请求。收到 303 以后,浏览器不会自动跳转,而会让用户自己决定下一步怎么办。

	我们只需要关注一下304状态码就可以了 
	304 : Not Modified 客户端使用缓存数据

3.状态码4xx

4xx 状态码表示客户端错误。

	400 Bad Request:服务器不理解客户端的请求,未做任何处理。
	401 Unauthorized:用户未提供身份验证凭据,或者没有通过身份验证。
    403 Forbidden:用户通过了身份验证,但是不具有访问资源所需的权限。 
    404 Not Found:所请求的资源不存在,或不可用。
    405 Method Not Allowed:用户已经通过身份验证,但是所用的 HTTP 方法不在他的权限之内。 
    410 Gone:所请求的资源已从这个地址转移,不再可用。 
    415 Unsupported Media Type:客户端要求的返回格式不支持。比如,API 只能返回 JSON 格式,但是 客户端要求返回 XML 格式。 
    422 Unprocessable Entity :客户端上传的附件无法处理,导致请求失败。
    429 Too Many Requests:客户端的请求次数超过限额。

4.状态码5xx

5xx 状态码表示服务端错误。一般来说,API 不会向用户透露服务器的详细信息,所以只要两个状态码就够了。

    500 Internal Server Error:客户端请求有效,服务器处理时发生了意外。
    503 Service Unavailable:服务器无法处理请求,一般用于网站维护状态。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值