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


当前回答

最简单的解释:

创建新的记录

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

补丁-更新

GET - read

DELETE -删除

其他回答

请求类型

create - POST read - GET create或update - PUT delete -删除 update - PATCH

GET/PUT是等幂的 PATCH有时是等幂的

什么是幂等的 这意味着如果我们多次触发查询,它不应该影响查询的结果。(相同的输出。假设一头牛怀孕了,如果我们再次繁殖它,那么它就不能怀孕多次)

得到:

简单的会。从服务器获取数据并显示给用户

{
id:1
name:parth
email:x@x.com
}

职位:

在数据库中创建新资源。这意味着它会添加新的数据。它不是等幂的。

将:-

创建新资源,否则添加到现有资源。 幂等的,因为它每次都会更新相同的资源,输出也会相同。 前女友。 -初始数据

{
id:1
name:parth
email:x@x.com
}

执行put-localhost / 1 把电子邮件:ppp@ppp.com

{
id:1
email:ppp@ppp.com
}

补丁

现在是补丁请求 PATCH有时是等幂的

id:1
name:parth
email:x@x.com
}

块名称:w

{
id:1
name:w
email:x@x.com
}
HTTP  Method
GET     yes
POST    no
PUT     yes
PATCH   no*
OPTIONS yes
HEAD    yes
DELETE  yes

资源: 幂等性——什么是幂等性?

最简单的解释:

创建新的记录

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

补丁-更新

GET - read

DELETE -删除

PUT和PATCH请求的主要区别:

假设我们有一个资源,其中包含一个人的姓和名。

如果我们想要改变名字,那么我们发送一个put请求Update

{"第一个":"迈克尔","最后一个":"安吉洛"}

在这里,虽然我们只改变了名字,但是对于PUT请求,我们必须在第一个和最后一个发送参数。 换句话说,必须再次发送所有值,即完整的有效负载。

然而,当我们发送PATCH请求时,我们只发送我们想要更新的数据。换句话说,我们只发送名字来更新,不需要发送姓氏。

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

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

PUT =用所提供的新表示替换整个RESOURCE

PATCH =用所提供的值替换源资源的部分和|或资源的其他部分被更新,你没有提供(时间戳)和|或更新资源影响其他资源(关系)

https://laracasts.com/discuss/channels/general-discussion/whats-the-differences-between-put-and-patch?page=1