HTTP方法中PUT与POST的区别
HTTP方法中PUT与POST的区别
HTTP中的PUT和POST方法通常被用于创建和更新页面上的对象,但如何更精确地区分它们的区别呢?
幂等的概念
PUT与POST方法最根本的区别是PUT是幂等的,所谓幂等是指“ PUT 方法是幂等的。幂等的方法意味着请求成功执行所得到的的结果不依赖于该方法被执行的次数。”
Example
为了更好的理解幂等,这里有一个例子:
在设计图书馆的restful接口时,设计了一个创建用户的API,用户使用user{id,name}来定义
这时候需要用API创建一个新的名字为White的user,id则为自增
POST: 若该用户不存在,创建一个新用户,返回201
若已经存在,则返回409 - Conflict
PUT: 若该用户不存在,创建一个新用户,返回201
若已经存在,返回200或者202
- 注意:在设计restful接口的时候,尽量要符合restful的设计规范,使POST和PUT的区别在设计中能够显现。