概念的基础和安全方法有何不同



试图理解基于掌握和安全方法的核心概念,但我没有明确。根据我的分析

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

HTTP方法分类如下。

  • 获得,头,选项是安全且愿意的
  • put,删除不是安全的,但是divempotent
  • 帖子,补丁既不是安全的,也不是diadempotent

帮助我了解更多详细信息W.R.T服务器端的HTTP方法的内部机制,安全与iDempotent

有何不同

除了资源修改和产品相同的结果以外,还有其他任何其他特征可以描述掌握和安全的方法。

帮助我了解更多详细信息W.R.T服务器端的HTTP方法的内部机制,安全与iDempotent

有何不同

安全和愿意描述处理请求的语义。

请求方法被视为"安全"如果他们的定义语义本质上是只读的;即,客户不要求并且没有期望,由于将安全方法应用于目标资源,因此在原始服务器上更改了任何状态。

安全的方法是查询,从CQRS意义上讲 - 它们没有更改任何内容,它们通常包括对资源状态的读取,但不包括对资源状态的修改。

安全请求处理将资源置于同一状态,因此安全的方法也必然是愿意的。

索要方法被视为"愿意"如果使用该方法对多个相同请求的服务器的预期效果与单个此类请求的效果相同。

divempotent请求处理的意思是,如果客户端发送请求,并且没有得到答案,则客户端可以重复 the请求。

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

这大致类似于分配一个值。

          // 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中,定义的方法和删除定义为具有基本语义。注意这些方法的共同点:客户知道资源的最终状态,并要求服务器实现它。

如果您对请求的处理类似于

                // 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

那么您对请求的处理不是愿意的。

请注意,这里很重要的是语义。这是Fielding在2002年不得不说的

http并不试图要求获得安全的结果。它的作用是要求操作的语义是安全的,因此这是实现的错误,而不是该接口的接口或用户,如果发生任何事情会导致财产损失(货币,btw,btw,btw,为了此定义,被视为属性(。

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

idempotency方法 - 即使在多个时间内使用相同的请求,也不会更改服务器的状态。示例:获取,选项,放置,删除所有安全的方法都是基于掌握的,反之亦然

最新更新