当前位置: 首页 > 知识库问答 >
问题:

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

东门茂实
2023-03-14

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

    null
    null

共有1个答案

司徒阳曜
2023-03-14

帮助我了解更多的细节W.R.T服务器端HTTP方法的内部机制,以及安全与幂等的区别

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

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

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

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

幂等请求处理的意思是,如果客户机发送了请求,但没有得到答复,客户机可以重复该请求。

          // 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中,方法PUT和DELETE被定义为具有幂等语义。请注意这些方法的共同点:客户端知道资源的最终状态应该是什么,并请求服务器使其发生。

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

                // 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的结果是安全的。它所做的是要求操作的语义是安全的,因此如果结果发生了任何导致财产损失的事情(顺便说一句,为了这个定义,金钱被认为是财产),这是实现的错误,而不是接口或该接口的用户的错误。

 类似资料:
  • 描述Istio的授权和认证功能。 双向TLS认证。描述Istio的双向TLS认证架构,这个架构提供强服务身份和服务间加密通讯通道。

  • Qt 布局管理器是 Qt 图形用户界面设计的基本内容,在前面的几章中也断断续续的讲到 了 Qt 的布局管理器的使用,也做了一些简单的应用。本小节将详细介绍 Qt 的布局管理器,详细阐述 Qt 布局管理器的一些特性。 11.1.1 摆放窗口部件的方法 Qt 提供了几种在窗口部件上管理子窗口部件的基本方式。 一共有 3 种方法用于管理窗体上子窗口部件的布局:绝对位置法、人工布局法和布局管理器法。 相比

  • 在本章中,我们将重点关注称为“敏捷”的软件开发生命周期的概念。 敏捷软件开发方法有助于通过增量会话在1到4周的短期迭代中构建软件,因此开发与不断变化的业务需求保持一致。 有12条原则详细描述了敏捷方法 - 客户满意度 最重要的是通过早期和持续交付有价值的软件来关注需求的客户。 欢迎新的变化 在软件开发期间可以接受更改。 敏捷流程旨在满足客户的竞争优势。 交付 (Delivery) 在一到四周的时间

  • 本文向大家介绍Java线程安全基础概念解析,包括了Java线程安全基础概念解析的使用技巧和注意事项,需要的朋友参考一下 Java线程安全初步了解。JAVA线程安全从总体上来说,是指Java对象在多线程运行环境下的一种特性,表现为常规(区别于特殊调用情况)情况下每次调用都能得到正确的逻辑结果。从本质上来说,将对象的方法行为加上了同步控制逻辑,而调用者无须做其他额外的同步控制就可以安全放心的使用对象。

  • 为了便于对 Docker 集群和容器进行管理,DaoCloud 为团队提供了多人协作运营和开发的功能。您可以为您所在的团队或公司创建一个 DaoCloud 组织,并邀请团队成员进入组织中,一同管理属于组织的 Docker 集群、应用和容器。 创建组织 第一步 若需要创建一个 DaoCloud 组织,您需要先使用需要作为管理员的账号登录到 DaoCloud 上,然后任意页面的右上角下拉菜单中找到「创

  • 英文原文:http://emberjs.com/guides/concepts/core-concepts/ 要开始学习Ember.js,首先要了解一些核心概念。 Ember.js的设计目标是能帮助广大开发者构建能与本地应用相颦美的大型Web应用。要实现这个目标需要新的工具和新的概念。我们花了很大的功夫从Cocoa、Smalltalk等本地应用框架引入了其优秀的理念。 然而,记住Web的特殊性非常