RESTAPI中PUT vs POST的有效负载

RESTAPI中PUT vs POST的有效负载,rest,http,post,put,payload,Rest,Http,Post,Put,Payload,我在面试中被问到以下问题- 如果使用PUT和POST http方法处理相同的请求,那么有效负载会有什么不同? 考虑到我在REST中没有太多工作经验,我甚至不知道有效载荷是什么。我试着在谷歌上搜索,但没有找到任何方便的方法 有人能帮忙吗?根据本页,PUT请求应该引用已经存在的项(例如,在连接的数据库中)。换句话说,它意味着更新现有项目。因此,有效负载不必包含项目的所有属性,只包含那些您想要更新的属性 另一方面,该职位是为了插入新的项目。这意味着有效负载应该包含(几乎)所有内容 问题是,如果您发送更

我在面试中被问到以下问题-

如果使用PUT和POST http方法处理相同的请求,那么有效负载会有什么不同?

考虑到我在REST中没有太多工作经验,我甚至不知道有效载荷是什么。我试着在谷歌上搜索,但没有找到任何方便的方法

有人能帮忙吗?

根据本页,PUT请求应该引用已经存在的项(例如,在连接的数据库中)。换句话说,它意味着更新现有项目。因此,有效负载不必包含项目的所有属性,只包含那些您想要更新的属性

另一方面,该职位是为了插入新的项目。这意味着有效负载应该包含(几乎)所有内容

问题是,如果您发送更多相同的PUT请求,则该项应保持与仅发送一次PUT的情况相同

如果您发送两个相同的POST请求,那么将创建两个新的相同项目(具有不同的ID)。这意味着POST请求不是幂等的

编辑:可能也有帮助

我甚至不知道有效载荷是什么

采访者可能指的是HTTP请求的消息体(请参阅)

如果您使用PUT和POST http方法处理相同的请求,那么有效负载的区别是什么

这可能是为了探索您是否理解HTTP方法和HTTP方法之间的语义差异

PUT方法请求创建目标资源的状态,或将其替换为请求消息负载中包含的表示所定义的状态

想想“保存文件”

POST的说明没有那么具体

POST方法请求目标资源根据资源自身的特定语义处理请求中包含的表示

如果这看起来很模糊。。。你说得对!POST请求的消息体几乎可以表示任何内容。POST是HTTP方法的“垃圾抽屉”——就在那里