如果你对HTTP的POST,PUT,PATCH方法之间的区别不是很明朗,那么这篇文章应该能帮到你
首先解释一下“幂等”的概念:在编程中一个 “幂等” 操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同
POST方法:
POST方法是用来创建一个新的数据的
POST方法不是幂等的,意味着他的结果不会是相同的,重复进行POST方法会导致多条相同的数据被创建
虽然多次执行结果不是相同的,但其实这些数据除了自增的id不同以外,其他部分的数据都是相同的
PUT方法:
PUT比较正确的定义是:Replace(Create or Update)
例如 PUT user1.name = "zdc", 若数据已存在就替换,不存在就新增
因此,PUT方法一般会用来更新一个已知数据,除非在创建前,你完全知道自己要创建的对象的URL
HTTP中 POST 和 PUT 区别
在HTTP中,PUT被定义为idempotent(幂等的)方法,POST则不是,这是一个很重要的区别
举个例子:
POST user1.name = "zdc"
PUT user.name = "wjw"
如果结果产生两条数据,就说明这个PUT方法不是idempotent(幂等的),因为多次使用产生了副作用
如果结果只产生了一条数据,就说明PUT方法是idempotent(幂等的),是PUT方法把POST产生的数据覆盖掉了
新增数据应该使用POST,修改现有数据应该使用PUT
PATCH方法
PATCH方法是新引入的,是对PUT方法的补充,用来对已知资源进行“局部更新”
PUT 和 PATCH 的区别
意思就是PUT是修改了整条记录,不变的字段也重写一点,不过重写的值与原来相同而已
而PATCH只是单独修改一个字段
意思就是,PATCH相比于PUT方法更加的节省计算机与网络资源,但其实不必刻意区分,使用PUT即可完成所有需求