如何保证接口幂等

如何保证接口幂等

接口幂等是指多次发送同一个请求,保证操作执行一次

通过概念得知需要多次发送同一个请求,那么多次请求的原因有哪些

  • 多次点击提交按钮
  • 点击页面刷新
  • 使用浏览器后退按钮重复之前的操作,导致重复提交表单
  • 使用浏览器历史记录重复提交表单
  • 请求retry重试机制

针对上述情况如何解决呢?

  • 前端js提交按钮进行处理,防止重复点击
  • 使用重定向方式,使得提交表单后重定向到提交成功页面,避免用户刷新页面导致的重复提交,也可以消除浏览器前进后退导致的问题
  • session中生成一个唯一标识,请求时将唯一标识写入到表单的隐藏字段中,后端判断唯一标识与session中的是否一致,一致则说明是第一次请求,处理该请求后移除session中的标识;不相等则说明是重复请求,不进行处理
  • 使用数据库进行防止,insert时使用唯一索引,update时使用乐观锁version

zhhll.icu/2023/javawe...

本文由mdnice多平台发布

相关推荐
WX-bisheyuange6 分钟前
基于Spring Boot的智慧校园管理系统设计与实现
java·大数据·数据库·毕业设计
深紫色的三北六号35 分钟前
大疆不同任务类型执行逻辑,上云API源码分析
java·无人机·springboot·大疆·上云api
BD_Marathon36 分钟前
【JavaWeb】IDEA运行并部署JavaWeb项目原理
java·ide·intellij-idea
7ioik38 分钟前
什么是类加载机制?
java
洛阳泰山38 分钟前
Java实现周易六爻自动排盘:根据起卦的公历时间换算农和干支时间,推算日柱空亡(旬空)
java·开发语言·周易·六爻·算卦
一只游鱼39 分钟前
我的第一个微服务项目cy-fang1.0
java·后端·spring cloud
缘来是庄42 分钟前
invalid comparison
java·spring boot·mybatis
哈哈哈笑什么1 小时前
3 次生产系统崩溃复盘:Java 后端从踩坑到封神的排查优化之路
java·后端·性能优化
用户3721574261351 小时前
如何在 Java 中将 RTF 转换为 PDF (含批量转换)
java
谷哥的小弟2 小时前
Spring Framework源码解析——ApplicationContextException
java·spring·源码