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


当前回答

最简单的解释:

创建新的记录

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

补丁-更新

GET - read

DELETE -删除

其他回答

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

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

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

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

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

参考RFC: https://www.rfc-editor.org/rfc/rfc9110.html#name-method-definitions

POST -创建新对象 PUT -更新旧对象或创建新对象(如果不存在) 更新/修改旧对象。主要用于修改。

之前提到的RFC的解释很少,但如果你仔细阅读,你会注意到PUT和PATCH方法是在POST之后出现的,这是一种常见的创建原生HTML表单的老式方法。

因此,如果你试图支持所有的方法(如PATCH或DELETE),可以建议使用所有方法的最合适的方法是坚持CRUD模型:

Create - PUT 阅读-获取 更新-补丁 删除-删除

旧的HTML原生方式: 阅读-获取 创建/更新/删除- POST

程序员们好运!: -)

最简单的解释:

创建新的记录

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

补丁-更新

GET - read

DELETE -删除

这样想吧……

POST - create

PUT -替换

补丁-更新

GET - read

DELETE -删除