发布于 2026-01-06 9 阅读
0

民意调查:你知道“幂等元”是什么意思吗?

民意调查:你知道“幂等元”是什么意思吗?

在35c3 大会上, Hanno Böck就 TLS 1.3 发表了一场非常精彩的演讲,他提出了一个问题:Web 开发者是否了解“幂等性”的含义?别急着生气,Hanno 的语气并非恶意,而是幽默风趣。所以,让我们借此机会探讨一下 Web 应用中的幂等性。我对此非常好奇,因此,让我们(误用)dev.to 的 like 系统来发起一个投票:

你知道“幂等性”是什么意思吗?或者,在查阅了维基百科之后,你是否在你的项目中运用了这个概念?

有时向服务器发出幂等请求是必需且显而易见的,但有时可能很棘手……或者根本不需要:

  • dev.to的点赞按钮乍一看似乎不具备幂等性,因为单击一次会点赞,单击两次会取消点赞。你可能会认为这只是一个切换请求,但并非如此。每个请求都包含一个操作(“创建”或“删除”)。因此,第一次点击会产生:{"result": "create", "category": "like"}。而这个请求是幂等的,因为即使网络层出现问题,服务器收到两次相同的请求,它仍然会正确处理:第一次点击会激活点赞,第二次点击则不执行任何操作。
  • Medium的鼓掌系统并非幂等的。一个请求看起来像这样:{"userId":"my123id456","clapIncrement":1}。你也可以看到它并非幂等的,因为鼓掌一次会将计数器从 $old-value 变为 $old-value + 1,而鼓掌两次则会变为 $old-value + 2。但这并非 bug,因为你可以多次鼓掌。

请投票

  • 点赞/喜欢 = 是的,我已经知道“幂等性”的含义,或者在以前的项目中使用过这个概念。
  • 独角兽 = 不,这对我来说是新的,或者我认为在我的项目中没有必要实现这个概念。

我必须承认,我本人也是两三年前才了解到这个术语。然而,我了解它的概念,并且在过去的项目中已经使用了十多年。我想这次投票应该是相当匿名的(可能除了 dev.to 的管理员之外),所以请大家务必诚实投票。

顺便一提:35c3 是全球规模最大的黑客盛会之一,所有演讲都会进行现场直播。您也可以稍后通过此链接找到演讲录像。

//封面照片由Yves Sorge拍摄/CC BY

文章来源:https://dev.to/thorstenhirsch/poll-do-you-know-what-idempot-means-4759