gpt4 book ai didi

http - 为什么 HTTP PATCH 请求方法不是幂等的

转载 作者:可可西里 更新时间:2023-11-01 16:48:24 27 4
gpt4 key购买 nike

它在 HTTP Spec 上提到PATCH 不是幂等的。

幂等的基本定义是:

An idempotent HTTP method is a HTTP method that can be called many times without different outcomes

所以如果我们进行 HTTP 调用

PATCH /users/1
{
"username": "dummyUser"
}

无论我们调用上述 HTTP 端点多少次,它总是意味着将用户 1username 更新为 dummyUser

对于更新任何资源的 1 个或多个属性的任何 PATCH 请求来说,这几乎是一样的。

那为什么 HTTP Spec 指定 PATCHnot 幂等的?

最佳答案

首先,重要的是要澄清 Idempotent: No 并不意味着它永远不会幂等,这意味着它不是 necessarily 幂等,即它不是必需的成为。

因此,在您的示例中,它看起来确实是幂等的,因为在多次重复调用同一 PATCH 请求后资源的状态是相同的。

但考虑一个假设的 PATCH 请求,例如:

PATCH /users/1

successful_logins++

此请求每次调用时都会将用户的 successful_logins 属性递增 1。如您所见,它不是幂等的,因为连续的请求会导致对资源的额外修改。

这与 PUT 方法相反,后者必须包含所有资源属性的绝对值。

关于http - 为什么 HTTP PATCH 请求方法不是幂等的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50814704/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com