当客户端通过 API 向服务器发起请求时,无论请求是失败的、通过的还是错误的,客户端应该获得反馈。HTTP 状态码是一堆标准化的数值码,在不同的情况下具有不同的解释。服务器应始终返回正确的状态码。
由于HTTP状态码比较丰富,以下是HTTP常用的状态码主要分类:
2xx (成功类别)
这些状态代码表示请求的操作已被服务器接收到并成功处理。
-
200 Ok:标准的 HTTP 响应,表示 GET、PUT 或 POST 的处理成功。
-
201 Created:在创建新实例时,应返回此状态代码。例如,使用 POST 方法创建一个新的实例,应该始终返回 201 状态码。
-
204 内容不存在:表示请求已被成功处理,但并未返回任何内容。
DELETE算是其中一个很好的例子。
API DELETE /companies/43/employees/2 将删除员工 2,作为响应,我们不需要在该 API 的响应正文中的任何数据,因为我们明确地要求系统将其删除。如果有任何错误发生,例如,如果员工 2 在数据库中不存在,那么响应码将不是 2xx 对应的成功类别,而是 4xx 客户端错误类别。
3xx (重定向类别)
-
304 未修改:表示客户端的响应已经在其缓存中。 因此,不需要再次传送相同的数据。
4xx (客户端错误类别)
这些状态代码表示客户端发起了错误的请求。
-
400 错误请求:表示客户端的请求没有被处理,因为服务器不能理解客户端请求的是什么。
-
401 未授权:表示客户端不被允许访问该资源,需要使用指定凭证重新请求。
-
403 禁止访问:表示请求是有效的并且客户端已通过身份验证,但客户端不被允许以任何理由访问对应页面或资源。 例如有时授权的客户端不被允许访问服务器上的目录。
-
404 未找到:表示所请求的资源现在不可用。
-
410 资源不可用:表示所请求的资源后续不再可用,该资源已被移动。
5xx(服务器错误类别)
-
500是服务器内部错误,表示请求已经被接收到了,但服务器被要求处理某些未预设的请求而完全混乱。
-
503服务不可用表示服务器已关闭或无法接收和处理请求。大多数情况是服务器正在进行维护。