HTTP协议中的PUT、POST和PATCH方法有什么区别?


当前回答

这样想吧……

POST - create

PUT -替换

补丁-更新

GET - read

DELETE -删除

其他回答

最简单的解释:

创建新的记录

PUT -如果记录存在,更新else,创建一个新记录

补丁-更新

GET - read

DELETE -删除

这样想吧……

POST - create

PUT -替换

补丁-更新

GET - read

DELETE -删除

你可能会把restful HTTP方法理解为javascript中对数组的相应操作(索引偏移量为1)。

请看下面的例子:

Method Url Meaning
GET /users return users array
GET /users/1 return users[1] object
POST /users users.push(body); return last id or index
PUT /users replace users array
PUT /users/1 users[1] = body
PATCH /users/1 users[1] = {...users[1], ...body }
DELETE /users/1 delete users[1]

PUT和PATCH w.r.t分别发送完整和部分数据进行替换/更新之间的差异非常符合逻辑。但是,我只提出以下几点

有时POST被认为是用于更新w.r.t PUT用于创建 HTTP是否要求/检查在PATCH中发送完整数据还是部分数据?否则PATCH可能与PUT/POST中的update完全相同

这里是一个简单的描述:

POST总是用于创建资源(是否复制并不重要) PUT用于检查资源是否存在,然后更新,否则创建新的资源 PATCH总是用于更新资源