HTTP协议中的PUT、POST和PATCH方法有什么区别?
当前回答
最简单的解释:
创建新的记录
PUT -如果记录存在,更新else,创建一个新记录
补丁-更新
GET - read
DELETE -删除
其他回答
PUT和PATCH w.r.t分别发送完整和部分数据进行替换/更新之间的差异非常符合逻辑。但是,我只提出以下几点
有时POST被认为是用于更新w.r.t PUT用于创建 HTTP是否要求/检查在PATCH中发送完整数据还是部分数据?否则PATCH可能与PUT/POST中的update完全相同
最简单的解释:
创建新的记录
PUT -如果记录存在,更新else,创建一个新记录
补丁-更新
GET - read
DELETE -删除
这样想吧……
POST - create
PUT -替换
补丁-更新
GET - read
DELETE -删除
PUT =用所提供的新表示替换整个RESOURCE
PATCH =用所提供的值替换源资源的部分和|或资源的其他部分被更新,你没有提供(时间戳)和|或更新资源影响其他资源(关系)
https://laracasts.com/discuss/channels/general-discussion/whats-the-differences-between-put-and-patch?page=1
参考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
程序员们好运!: -)
推荐文章
- 什么是HTTP中的“406-不可接受的响应”?
- 最好的轻量级web服务器(只有静态内容)的Windows
- HTTP POST在Java中使用JSON
- 哪些HTTP方法与哪些CRUD方法相匹配?
- 使用HTML形式的PUT方法
- 如何转义哈希字符在URL
- 有没有办法在python中做HTTP PUT
- 我能在服务器端应用程序(PHP、Ruby、Python等)上读取URL的哈希部分吗?
- 什么是http头“X-XSS-Protection”?
- 在nodejs http中body在哪里。得到回应?
- HTTP请求在Swift与POST方法
- Ruby:如何将散列转换为HTTP参数?
- 在用nodejs和express创建的REST API中设置响应状态和JSON内容的正确方法
- HTTP 1.1和HTTP 2.0的区别是什么?
- 什么是“升级-不安全-请求”HTTP报头?