首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >概念、幂等方法和安全方法有何不同?

概念、幂等方法和安全方法有何不同?
EN

Stack Overflow用户
提问于 2018-03-30 10:10:38
回答 2查看 3.4K关注 0票数 1

试图理解幂等和安全方法的核心概念,但我没有弄清楚。根据我的分析

  • 幂等方法-可以用相同的输入多次调用,并产生相同的结果。
  • 安全方法-不修改服务器端的资源。

Http方法分类如下。

  • 得到,头,选择是安全的和幂等的
  • 删除不是安全的,而是幂等的。
  • POST补丁既不安全也不幂等。

帮助我更详细地了解服务器端HTTP方法的内部机制,以及安全性与幂等的区别

除了资源修改和产品相同的结果外,是否还有其他特性可用来描述幂等和安全的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-30 12:24:45

帮助我更详细地了解服务器端HTTP方法的内部机制,以及安全性与幂等的区别

安全幂等都描述了处理请求的语义。

如果请求方法的定义语义本质上是只读的,则请求方法被认为是“安全的”;也就是说,客户端不请求、也不期望由于将安全方法应用于目标资源而在源服务器上发生任何状态更改。

cqrs意义上,安全方法是查询--它们不改变任何东西,它们通常包括对资源状态的读取,而不是对资源状态的修改。

安全请求处理使资源处于相同的状态,因此安全方法也必然是幂等的。

如果多个相同请求对服务器的预期效果与单个请求的效果相同,则请求方法被认为是“幂等的”。

幂等请求处理意味着,如果客户端发送请求,但没有得到答复,客户端可以重复请求。

幂等请求处理基本上意味着服务器仅从请求中计算资源的最终状态(而不考虑资源的当前状态)。当第二次处理消息时,将计算和应用相同的新状态。

这大致类似于赋值。

代码语言:javascript
复制
          // the previous value of x was 10, say
set(x, 7) // and now the value of x is 7
set(x, 7) // and now the value of x is still 7

在HTTP中,方法删除被定义为具有幂等语义。注意这些方法有什么共同之处:客户机知道资源的最终状态应该是什么,并要求服务器实现它。

如果对请求的处理类似于

代码语言:javascript
复制
                // the previous value of x was 10, say
increment(x, 7) // and now the value of x is 17
increment(x, 7) // and now the value of x is 24

那么,您对请求的处理不是幂等的。

请注意,这里重要的是语义。以下是菲尔丁在2002年不得不说

HTTP不试图要求GET的结果是安全的。它所做的是要求操作的语义是安全的,因此它是实现的错误,而不是该接口的接口或用户,如果发生任何导致财产损失的事情(为了这个定义,货币,BTW被认为是财产)。

票数 5
EN

Stack Overflow用户

发布于 2021-09-25 14:56:18

安全方法-不会改变服务器中的任何资源。例如:获取,选项。

IDEMPOTENCY方法--即使在多次请求相同的情况下也不会改变服务器的状态。示例: GET、OPTIONS、PUT、DELETE所有安全方法都是IDEMPOTENT,反之亦然

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49572486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档