很多 Web 开发人员只知道 Http 请求方式有 Get 和 Post 两种,对于请求返回状态码更是知之甚少,基础的 200, 404, 403, 500 等。作为想更上一层的软件开发人员,这些是远远不够的,所以我介绍一下在 Http 请求中的常用请求方式和返回状态码。
Http Method
- Get
Get 方式是我们平时最常用的一种请求方式,我们在获取资源时会使用,比如获取文章的数据。如果请求成功会返回状态码 200 OK 以及我们请求的资源信息。 - Post
Post 方式用于创建新的资源,比如发布新的文章。请求成功返回状态码 201 Created 以及返回被创建的资源信息。 - Put
Put 方式用于更新替换资源,比如修改全部文章信息。请求成功返回状态码 200 OK ,返回被修改的资源信息。 - Patch
Patch 方式也是用于更新资源,和 Put 的区别是 Patch 只需要更新部分资源数据。请求成功返回 200 OK和被修改的资源信息。 - Delete
Delete 方式见名知意,用户删除资源时使用。成功后返回 204 No Content 。 - Head
Head 方式用户获取请求资源返回的头信息。 - Options
Options 方式用于获取资源支持的所有 Http 方法
Status Code
成功:
200 OK : 请求成功并返回数据;
201 Created : 资源创建成功并返回资源数据;
202 Accepted : 接受请求,但无法立即完成创建行为,返回的实体中应该包含当前状态的信息,以及指向处理状态监视器或状态预测的指针,以便客户端能够获取最新状态;
204 No Content : 请求成功不返回数据,通常用于 Delete;
重定向:
重定向的新地址需要在响应头 Location 中返回
301 Moved Permanently : 被请求的资源已永久移动到新位置;
302 Found : 请求的资源现在临时从不同的 URI 响应请求;
303 See Other : 对应当前请求的响应可以在另一个 URI 上被找到,客户端应该使用 GET 方法进行请求。比如在创建已经被创建的资源时,可以返回 303;
307 Temporary Redirect : 对应当前请求的响应可以在另一个 URI 上被找到,客户端应该保持原有的请求方法进行请求;
条件请求:
304 Not Modified : 资源自从上次请求后没有再次发生变化,主要使用场景在于实现数据缓存;
409 Conflict : 请求操作和资源的当前状态存在冲突。主要使用场景在于实现并发控制;
412 Precondition Failed : 服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。主要使用场景在于实现并发控制;
客户端错误:
400 Bad Request : 请求体包含语法错误;
401 Unauthorized : 需要验证用户身份或认证失败 ;
403 Forbidden : 服务器拒绝执行;
404 Not Found : 找不到目标资源;
405 Method Not Allowed : 所请求的 HTTP 方法不允许当前认证用户访问;
406 Not Acceptable : 服务器不支持客户端请求的内容格式;
410 Gone : 被请求的资源已被删除,只有在确定了这种情况是永久性的时候才可以使用,否则建议使用 404 Not Found;
413 Payload Too Large : POST 或者 PUT 请求的消息实体过大;
415 Unsupported Media Type : 服务器不支持请求中提交的数据的格式;
422 Unprocessable Entity : 请求格式正确,但是由于含有语义错误,无法响应;
428 Precondition Required : 要求先决条件,如果想要请求能成功必须满足一些预设的条件;
服务端错误:
500 Internal Server Error : 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理;
501 Not Implemented : 服务器不支持当前请求所需要的某个功能;
502 Bad Gateway : 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应;
503 Service Unavailable : 服务器维护或者过载,服务器当前无法处理请求;
更多信息可查看 Api设计指北!
文章同步发布在我的个人博客中,传送门Hesunfly Blog
网友评论