建议您尽可能避免POST,因为代理和其他网络中介偶尔会重新发送POST请求,这可能会导致文档重复出现。
根据我的理解,这不应该在协议级别上发生(带有双击的混乱用户是一个完全不同的故事)。那么最好的行动方案是什么?
我们真的应该尝试避免POST请求并用PUT替换它们吗?我不喜欢它,因为它们传达了不同的含义。
我们是否应该预测到这一点,并通过我们希望避免意外重复的唯一ID来保护请求?我也不喜欢这样:它使代码复杂化并防止可能需要多个相同帖子的情况。
答案 0 :(得分:2)
我们真的应该尽量避免POST 请求并由PUT替换它们?一世 不喜欢那样,因为他们传达了一个 不同的意思。
对于文档创建(如您引用的文档中所述),这正是正确的含义。对于文档修改,偶尔的重发请求不是问题。
答案 1 :(得分:2)
我们应该在请求为幂等时避免POST请求,并且确实更改服务器状态(每次执行时都不应更改服务器状态,在文档创建中这意味着只应创建文档一次)。
当请求为非幂等时,POST适用。这意味着每次发送请求时,服务器状态都会发生变化。对于更新或删除,这无关紧要。
当然,由于Web浏览器支持,实际上只采用了GET和POST请求,因为POST完成了PUT所做的一切(它不是为幂等请求设计的)。
答案 2 :(得分:0)
在WebMaster时代,我一定非常幸运,从未见过重复的POST请求。
TCP / IP发送带编号的消息,我不知道为什么任何网络服务器都不会丢弃重复的消息。
这个重复的POST事件真的是个问题吗?