> 文档中心 > REST模式:POST,GET,PUT,DELETE,PATCH的含义与区别

REST模式:POST,GET,PUT,DELETE,PATCH的含义与区别


根据HTTP规范:

1. GET 用于信息获取,而且是安全的和幂等的

GET请求是安全的。所谓安全是指不管进行多少次操作,资源的状态都不会改变。该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。

2. POST 用于创建数据,不是安全和幂等的

POST请求既不是安全的,也不是幂等的,比如常见的POST重复加载问题:当我们多次发出同样的POST请求后,其结果是创建出了若干的资源。

3. PUT 用于创建或完整更新数据,而且是安全和幂等的

PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改完整的数据内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同。

4. DELETE 用于删除数据,而且是安全和幂等的

DELETE请求顾名思义,就是用来删除某一个资源的,该请求就像数据库的delete操作,无论进行多少次DELETE操作,其结果并没有不同。

5. PATCH 用于更新部分数据,不是安全和幂等的

PATCH请求是对PUT请求的补充,一般用来对已知资源部分更新,是后来新出的标准,GitHub Api也开始使用。

更多详细的介绍可以参考RESTful手册