post方法和patch是非幂等的, put方法是幂等。
幂等又是个啥?按照我的理解,就是如果一个方法重复执行多次(相同的操作执行第二遍第三遍),产生的结果是一样的,那就是幂等。
例如向后台创建一条叫做test的数据,使用post的时候,如果数据库中没有该条数据,就会创建一条新的,如果有,就会创建另一条新的,执行多少次就有多少条数据。但使用put方法时,如果数据库中没有该条数据,就创建一条新的,如果已存在,就将原本的数据替换掉,数据个数还是一个。
而patch是对数据部分修改,例如一条数据中有username、userage、useraddress等字段,利用patch提交username字段,就是对该数据中username进行修改,其他字段值不变。而put方法修改某条数据时,要把要修改的和不修改的数据都要提交一份,如果只put提交username,nameuserage、useraddress等字段的值就会被清空。
一般情况下,put方法可以改为patch,反之不可以。