1.什么是幂等性

幂等性概念:幂等通俗来说是指不管进行多少次重复操作,都是实现相同的结果。

2.REST请求中哪些是幂等操作

GET,PUT,DELETE都是幂等操作,而POST不是,以下进行分析:

首先GET请求很好理解,对资源做查询多次,此实现的结果都是一样的。

PUT请求的幂等性可以这样理解,将A修改为B,它第一次请求值变为了B,再进行多次此操作,最终的结果还是B,与一次执行的结果是一样的,所以PUT是幂等操作。

同理可以理解DELETE操作,第一次将资源删除后,后面多次进行此删除请求,最终结果是一样的,将资源删除掉了。

POST不是幂等操作,因为一次请求添加一份新资源,二次请求则添加了两份新资源,多次请求会产生不同的结果,因此POST不是幂等操作。

3 根据幂等性区分POST与PUT的使用

了解REST后很长一段时间不能明确区分PUT和POST的区别,在使用时很容易混淆,完全可根据idempotent(幂等性)做区分。

举一个简单的例子,假如有一个博客系统提供一个Web API,模式是这样http://superblogging/blogs/{blog-name},很简单,将{blog-name}替换为我们的blog名字,往这个URI发送一个HTTP PUT或者POST请求,HTTP的body部分就是博文,这是一个很简单的REST API例子。

我们应该用PUT方法还是POST方法?

取决于这个REST服务的行为是否是idempotent的,假如我们发送两个http://superblogging/blogs/post/Sample请求,服务器端是什么样的行为?如果产生了两个博客帖子,那就说明这个服务不是idempotent的,因为多次使用产生了副作用了嘛;如果后一个请求把第一个请求覆盖掉了,那这个服务就是idempotent的。前一种情况,应该使用POST方法,后一种情况,应该使用PUT方法。

原文地址:https://blog.csdn.net/qq_33082731/article/details/74230813

最新文章

  1. iOS系列 基础篇 03 探究应用生命周期
  2. 时间的处理 --java
  3. 虚拟机启动linux系统报错,此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态
  4. 条件随机场(CRF) - 1 - 简介(转载)
  5. jquery each遍历节点使用
  6. 【翻译七】java-同步
  7. 开源.net 混淆器ConfuserEx介绍
  8. ES5 数组方法reduce
  9. Ubuntu连接L2TP的VPN设置
  10. JAVA中分为基本数据类型及引用数据类型
  11. RadioButton 组,ComboBox用法:
  12. paper 24 :matlab的cat函数
  13. Subgraph Search Over Large Graph Database
  14. vue错误和解决方法
  15. 201521123001《Java程序设计》第13周学习总结
  16. C# Math的说有函数 以及说明
  17. L362 When to Bring up Salary During the Job Interview Process
  18. js 处理金额各个位数上的值
  19. python异步编程之asyncio(百万并发)
  20. JSP内置对象——Exception对象

热门文章

  1. sqlserver 下三种批量插入数据的方法
  2. 关于 solusvm
  3. jeecmsv8 shiro 分析
  4. Maven实战07_依赖
  5. 【DM642学习笔记五】FVID驱动模型 API函数
  6. zepto.js按需载入模板对象
  7. Django项目:CRM(客户关系管理系统)--25--17PerfectCRM实现King_admin单列排序
  8. 一些CSS知识点备忘
  9. apache https 双向认证
  10. 现在学习 JavaScript 的哪种技术更好:Angular、jQuery 还是 Node.js?(转)