如何保证接口幂等

如何保证接口幂等

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

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

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

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

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

zhhll.icu/2023/javawe...

本文由mdnice多平台发布

相关推荐
希望永不加班20 小时前
SpringBoot 过滤器(Filter)与请求链路梳理
java·spring boot·后端·spring
Lyyaoo.20 小时前
【JAVA基础面经】抽象类/方法与接口
java·开发语言
0xDevNull20 小时前
Java实现Redis延迟队列:从原理到高可用架构
java·开发语言·后端
于先生吖20 小时前
无人共享健身房 Java 后端源码 + 多端对接完整方案
java·开发语言
恼书:-(空寄20 小时前
Spring 事务失效的 8 大场景 + 原因 + 解决方案
java·后端·spring
野生技术架构师20 小时前
1000道互联网大厂Java岗面试原题解析(八股原理+场景题)
java·开发语言·面试
jiankeljx21 小时前
Java实战:Spring Boot application.yml配置文件详解
java·网络·spring boot
cyforkk21 小时前
Java 开源项目指南:如何规范地发布首个 GitHub Release
java·开源·github
qqty121721 小时前
Java进阶学习之路
java·开发语言·学习
是苏浙21 小时前
初识集合框架
java·数据结构