什么是幂等性?

幂等是一个数学与计算机学概念,在数学中某一元运算为幂等时,其作用在任一元素两次后会和其作用一次的结果相同。

在计算机中编程中,一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。

幂等函数或幂等方法是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。

什么是接口幂等性?

HTTP/1.1中,对幂等性进行了定义。它描述了一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络超时等问题除外),即第一次请求的时候对资源产生了副作用,但是以后的多次请求都不会再对资源产生副作用。

这里的副作用是不会对结果产生破坏或者产生不可预料的结果。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。

为什么需要实现幂等性?

在接口调用时一般情况下都能正常返回信息不会重复提交,不过在遇见以下情况时可以就会出现问题,如:

  1. 前端重复提交表单: 在填写一些表格时候,用户填写完成提交,很多时候会因网络波动没有及时对用户做出提交成功响应,致使用户认为没有成功提交,然后一直点提交按钮,这时就会发生重复提交表单请求。

  2. 用户恶意进行刷单: 例如在实现用户投票这种功能时,如果用户针对一个用户进行重复提交投票,这样会导致接口接收到用户重复提交的投票信息,这样会使投票结果与事实严重不符。</

Java基础学习总结(167)——Java项目实践中如何实现幂等相关推荐

  1. Java基础学习:尚硅谷项目三 开发团队调度软件

    Java基础学习:尚硅谷项目三 开发团队调度软件 一.软件功能与结构设计 1. 软件功能 该软件实现以下功能: 软件启动时,根据给定的数据创建公司部分成员列表(数组) 根据菜单提示,基于现有的公司成员 ...

  2. 【机器学习基础】SVM算法在项目实践中的应用!

    作者:苏丽敏,Datawhale优秀学习者,北理工计算机硕士 支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本.非线性及高维 ...

  3. java基础学习总结一(java语言发展历史、jdk的下载安装以及配置环境变量)

    最近一段时间计划复习一下java基础知识,使用的视频课程是尚学堂高淇老师的,上课过程中的心得体会 直接总结一下,方便以后复习. 一:计算机语言的发展 1:机器语言,最原始的语言,主要有"01 ...

  4. Java基础学习笔记三 Java基础语法

    Scanner类 Scanner类属于引用数据类型,先了解下引用数据类型. 引用数据类型的使用 与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有一个相对固定的步骤或格式. 数据类型 变量名 ...

  5. Java基础学习总结(50)——Java事务处理总结

    一.什么是Java事务 通常的观念认为,事务仅与数据库相关. 事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(consistency).隔离性(isol ...

  6. java中哪些可以私有化_《Java基础学习笔记》JAVA修饰符之私有化(Private)

    1,什么是private修饰符? private是权限修饰符,用于修饰类中的成员(成员变量,成员函数). private修饰后的成员只在本类中有效. /* 例: * 将age私有化以后,类以外即使建立 ...

  7. 《Java基础学习笔记》JAVA面向对象之封装

    1,封装,是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 2,好外:        a)将变化隔离.        b)便于使用.        c)提高重用性.        d)提高安全性 ...

  8. Java 基础学习-Java语言概述

    Java 基础学习 第一章 Java语言概述 回顾java基础知识,进行整理记录. 文章目录 Java 基础学习 前言 一. Java语言发展史(了解) 二.Java语言跨平台原理(理解) 三.JRE ...

  9. java基础学习-6

    Java基础学习-6 双列集合 Map的常见API Map的遍历方式 HashMap 小练习 LinkedHashMap TreeMap TreeMap--小练习1 TreeMap--小练习2 Tre ...

最新文章

  1. WebViewJavascriptBridge原理解析
  2. GPT-2:OpenAI的NLP商业化野望
  3. 在Java中有类似.NET的NotImplementedException吗?
  4. BZOJ 3277 串 BZOJ 3473 字符串 (广义后缀自动机、时间复杂度分析、启发式合并、线段树合并、主席树)...
  5. ORACLE数据迁移参考
  6. 取整 除法_Python学习教程:Python3除法之真除法、截断除法和下取整对比
  7. 机器人出魔切还是三相_魔切冷却流机器人,暗夜收割者一招致命!
  8. 微信小程序 body属性的问题
  9. LeetCode 1647. 字符频次唯一的最小删除次数(贪心)
  10. beeline安装_Hive 系列 之 简介与安装
  11. 拓端tecdat|R语言是否对二分连续变量执行逻辑回归
  12. 打印机测试图_国产彩色激光机一样很靠谱 奔图全新彩色激光机到底怎么样?...
  13. Linux查看日志的几种方式
  14. 0x0000050蓝屏srvsys_蓝屏代码0x00000050的原因及解决方法
  15. python 从大图中找小图
  16. 小技巧|CSS如何实现文字两端对齐
  17. 关于组织举办区块链与隐私计算等新技术融合应用高级研修班的通知
  18. python本地安装pip命令的终极教程
  19. fedora 笔记本安装_漂亮的超薄笔记本电脑,令Fedora焕发光芒
  20. 宝藏猎人峰回路转 刺客技能优势介绍

热门文章

  1. 支付宝兑换的扫地机器人_支付宝里这笔钱赶紧用掉!年底过期作废
  2. centos7 mysql还原dmp_Linux平台下RMAN异机恢复总结
  3. exists查询慢_我大意了!这些问题让我的MySQL慢了十倍。
  4. sangfor设备升级系统_H3C IPS入侵防御系统配置
  5. python server client_python 实现简单client与server | 学步园
  6. QT每日一练day22:键盘事件
  7. C++之指针探究(二):一级指针和一维数组
  8. C++之函数模板探究
  9. 大学计算机基础课学几年,大学计算机基础类课程教学(2017年开始)-杭州师范大学计算机教育与.PDF...
  10. 关于C语言数据类型的PPT,C语言基本的数据类型.ppt