试图理解幂等和安全方法的核心概念,但我没有弄清楚。根据我的分析
Http方法分类如下。
帮助我更详细地了解服务器端HTTP方法的内部机制,以及安全性与幂等的区别
除了资源修改和产品相同的结果外,是否还有其他特性可用来描述幂等和安全的方法。
发布于 2018-03-30 12:24:45
帮助我更详细地了解服务器端HTTP方法的内部机制,以及安全性与幂等的区别
如果请求方法的定义语义本质上是只读的,则请求方法被认为是“安全的”;也就是说,客户端不请求、也不期望由于将安全方法应用于目标资源而在源服务器上发生任何状态更改。
在cqrs意义上,安全方法是查询--它们不改变任何东西,它们通常包括对资源状态的读取,而不是对资源状态的修改。
安全请求处理使资源处于相同的状态,因此安全方法也必然是幂等的。
如果多个相同请求对服务器的预期效果与单个请求的效果相同,则请求方法被认为是“幂等的”。
幂等请求处理意味着,如果客户端发送请求,但没有得到答复,客户端可以重复请求。
幂等请求处理基本上意味着服务器仅从请求中计算资源的最终状态(而不考虑资源的当前状态)。当第二次处理消息时,将计算和应用相同的新状态。
这大致类似于赋值。
// 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那么,您对请求的处理不是幂等的。
请注意,这里重要的是语义。以下是菲尔丁在2002年不得不说
HTTP不试图要求GET的结果是安全的。它所做的是要求操作的语义是安全的,因此它是实现的错误,而不是该接口的接口或用户,如果发生任何导致财产损失的事情(为了这个定义,货币,BTW被认为是财产)。
发布于 2021-09-25 14:56:18
安全方法-不会改变服务器中的任何资源。例如:获取,选项。
IDEMPOTENCY方法--即使在多次请求相同的情况下也不会改变服务器的状态。示例: GET、OPTIONS、PUT、DELETE所有安全方法都是IDEMPOTENT,反之亦然
https://stackoverflow.com/questions/49572486
复制相似问题