首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

POST在重复时返回409是否是非幂等的?

POST在重复时返回409是非幂等的。幂等性是指对同一资源的多次操作,结果应该是一致的。对于POST请求,每次请求都会创建一个新的资源,因此多次重复的POST请求会导致多个相同的资源被创建,结果不一致。而409状态码表示冲突,表示服务器已经存在相同的资源,因此重复的POST请求会返回409状态码,表示操作冲突,不具备幂等性。

POST请求通常用于创建新的资源,而PUT请求用于更新已存在的资源。对于PUT请求,多次重复的请求应该具备幂等性,即多次相同的PUT请求对同一资源的更新结果应该是一致的。

相关搜索:$(“#input”)在使用$.post()时返回未定义的.val()带有Spring MVC的jUnit在POST时总是返回400是否在post请求后使用res.send返回已发布的数据?ReactJs Redux:在决定redux状态(在map、filter等函数之后)时,如何从数组中删除重复的对象(具有重复值)?在post请求时将JSON中的错误从flask返回到javascript在中返回POST请求时返回的byte[]数据与通过HttpWebRequest调用时所需的数据不同如何修复我的代码,避免在球拍中使用map时返回重复的对?在测试控制器post方法时,如何模拟MySql数据库返回的主键在不重复其他文本的情况下,在回显时返回mysql_fetch_array列表在连接返回false的变量时,SQL Server是否甚至会查看表?在tkinter python中使用excel中的值时,列表框中是否有重复项?在发布到解析服务器时,是否返回新创建的对象Id是否在访问对象数组中的特定对象属性时返回对象承诺?(角度-离子)我在向mongodb发送POST请求时遇到问题。我的架构和请求是否正确?在创建表时,是否可以在不重复提及类型的情况下声明多个列具有相同的类型?Schema:在列出嵌套对象时,是否有必要(或者甚至是可取的)重复结构化数据?在检索多个项目与检索单个项目时,RESTful服务是否应返回不同的数据在CRM 4中使用QueryExpression时,是否可以限制响应中返回的结果数量在python中调用数据库时,如何判断高度是否重复,先打印具有较小权重的行?在VBA中是否有一个类似索引的函数可以在完全匹配时返回多列数据?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

REST API有关11条最佳实践

他们将键存储 24 小时,为您提供 24 小时保护,防止重复POST /v1/customersIdemptency-Key: blahblahblahblah{"name":"Bob Dobbs...当冲突发生... 既然您 API 提供了一种(良好机制,那么还有一个主要考虑因素:如何通知客户端存在冲突?...有两个主要思想流派: 1、返回错误 当客户端提交重复性密钥,我喜欢返回 409 CONFLICT。...如果您不想考虑太多,请采用以下解决方案: 让客户端每次 POST/create 操作提交性键(也称为“客户参考 ID”) 将其存储具有唯一约束数据库中 违反唯一约束返回 409 CONFLICT... 409 响应正文中提供原始 ID 亮点:通过允许具有相同参数重复请求或在冲突返回现有 ID,使 API 具有性。

24920

用ASP.NET Core 2.0 建立规范 REST API -- GET 和 POST

这里需要提是后两个: HEAD: 和GET差不多, 但是它不应该返回响应body, 所有没有响应payload. 它主要使用来获取资源一些信息, 例如查看资源是否可用....OPTIONS: 它是用来查询某个资源URI可交互方式有哪些, 换句话说就是, 使用它可以知道某个URI是否可以执行GET或者POST动作, 这些结果通常是响应Headers里面而不是body里,...创建资源 首先了解一下方法安全性和性。 安全性是指方法执行后并不会改变资源表述。 性是指方法无论执行多少次都会得到同样结果。 下面是HTTP方法安全性和性列表: ?...这次返回数据id为6,与前面不一样,所以POST不是,它每次执行后结果是不一样。 创建子资源 Country创建做完了,现在可以创建City了。 ?...(POST不是, 它无法多次请求都产生同样结果). 测试一下id资源不存在情况: ? 测试一下Id资源存在情况: ? 还是404, 这个不行, 所以需要手动处理: ?

1.6K10
  • 细说RESTFul API之

    实际上,分布式架构中API性不仅仅针对RESTFul接口,而是对所有类型接口适用,目的是为了确保调用1次或N次接口对资源影响结果都是相同。...接口符合性有什么用处 接口性确保了无论调用1次还是N次对资源影响都是相同,这在某些场合下是非常有用。...如下是常用HTTP方法性和安全性总结: HTTP方法名称 是否 是否安全 OPTIONS Y Y HEAD Y Y GET Y Y PUT Y N DELETE Y N POST N N PATCH...从上述HTTP方法性总结中可以得知,HTTP协议POST和PATCH方法都不是(但是我们却经常会在RESTFul接口中使用到它们),那是否就意味中无法将POST和PATCH方法设计为性接口了呢...我们不要也不能把接口性作为万能解决办法,但是,我们设计接口尽量考虑符合性处理是非常有价值

    3.8K30

    ​你回去了解一下RESTful风格

    RESTful风格HTIP请求中,使用put、delete、post和get方式分别对应添加、删除、修改和查询操作。不过目前国内开发,还是只使用post和get方式来进行增删改查操作。...如果按照HTTP方法语义来暴露资源,那么接口将会拥有安全性和特性,例如GET和HEAD请求都是安全, 无论请求多少次,都不会改变服务器状态。...而GET、HEAD、PUT和DELETE请求都是,无论对资源操作多少次, 结果总是一样,后面的请求并不会产生比第一次更多影响。...下面列出了GET,DELETE,PUT和POST典型用法: GET 安全且 获取表示 变更获取表示(缓存) 200(OK) - 表示已在响应中发出 204(无内容) - 资源有空表示 301(...POST和PUT创建资源区别在于,所创建资源名称(URI)是否由客户端决定。

    82710

    HTTP 常见面试题速查

    见 rfc5789) 作用 GET:用于请求服务器发送某些资源 HEAD:请求资源头部信息,并且这些头部与 HTTP GET 方法请求返回一致,该请求方法一个使用场景是在下载一个大文件前先获取其大小再决定是否要下载...,缓存内容很容易查到数据信息 数据类型不同:GET 只允许 ASCII 字符,而 POST 无限制 GET 无害:刷新、后退浏览器操作 GET 请求无害POST 可能重复提交表单 特性不同:GET...是安全(指只读特性,该方法不会引起服务器状态变化)且(指同一个请求方法执行多次和仅执行一次效果完全相同),而 POST 是非安全非 # PUT 和 POST 都是给服务器发送新增资源,有什么区别...PUT 方法是:连续调用一次或者多次效果相同(无副作用),而 POST 方法是非 通常,PUT URI 指向是具体单一资源,而 POST 可以指向资源集合 如 新建文章 往往 POST...步骤: 客户端向服务器发出请求,请求资源 服务器返回资源,并通过响应头决定缓存策略 客户端根据响应头决策决定是否缓存资源,并将响应头与资源缓存下来 客户端再次请求且命中资源时候,此时客户端去检查上次缓存缓存策略

    29420

    网络编程之HTTP协议请求方法

    3HEAD本质和get一样,但是响应中没有呈现数据,而是http头信息,主要用来检查资源或超链接有效性或是否可以可达、检 查网页是否被串改或更新,获取头信息,特别适用在有限速度和带宽下。...所以put是安全, 无论请求多少次,都是123上更改,而post可能请求几次创建了几次资源。5DELETE请求服务器删除某资源。和put都具有破坏性,可能被防火墙拦截。...PATCH 和 PUT 比较 PATCHPUT是否粒度局部,最小粒度,节约网络带宽所有 注意:比如更新一个userinfo,包含name,age,sex多个字段,如果只修改了age,如果用...使用GET和POST请求查看304Not Modified未修改。所请求资源未修改,服务器返回此状态码,不会 返回任何源。...,超时409Conflict服务器完成客户端PUT请求是可能返回此代码,服务器处理 请求发生了冲突410Gone客户端请求资源已经不存在。

    1.3K40

    RESTful架构经典状态码

    下面列出了GET,DELETE,PUT和POST典型用法: GET • 安全且 • 获取表示 • 变更获取表示(缓存) • 200(OK) - 表示已在响应中发出 • 204(无内容) - 资源有空表示...• 不安全且不 • 使用服务端管理(自动产生)实例号创建资源 • 创建子资源 • 部分更新资源 • 如果没有被修改,则不过更新资源(乐观锁) • 200(OK)- 如果现有资源已被更改 • 201...• 500 (internal server error)- 通用错误响应 • 503 (Service Unavailable)- 服务当前无法处理请求 PUT • 不安全但 • 用客户端管理实例号创建一个资源...(not acceptable)- 服务端不支持所需表示 • 409 (conflict)- 通用冲突 • 412 (Precondition Failed)- 前置条件失败(如执行条件更新冲突)...)- 服务当前无法处理请求 DELETE • 不安全但 • 删除资源 • 200 (OK)- 资源已被删除 • 301 (Moved Permanently)- 资源URI已更改 • 303 (See

    21120

    聊聊设计

    其实除了转账这个例子,日常开发中,还有很多很多例子需要考虑。比如: MQ(消息中间件)消费者读取消息,有可能会读取到重复消息。...把请求储存起来,收到请求,先查下存储记录,记录存在就返回上次结果,不存在就处理请求。 一般处理就是这样啦,如下: 5....更新完成 commit; # 5.提交事务 这种场景是非原子操作高并发环境下,可能会造成一个业务被执行两次问题: 当一个请求A执行中,而另一个请求B也开始状态判断操作。...乐观锁在操作数据,则非常乐观,认为别人不会同时修改数据,因此乐观锁不会上锁。只是执行更新时候判断一下,在此期间别人是否修改了数据。 怎样实现乐观锁呢?...两次相同POST请求会在服务器端创建两份资源,它们具有不同 URI;所以,POST方法不具备性。

    78120

    关于接口

    (用户余额100,给用户增加100金额,无论请求多少次,最后余额都是为200) 3:性所强调是对资源变更状态一致,而非返回数据结果. http接口中默认性 大家都知道,http协议,根据客户端请求服务端不同操作分为多个请求方法...可能会有数据更改(并非这次请求修改),获取数据和第一次不一致,但并不是它修改数据,所以它在http协议中默认是操作 post 方法(非) 大家都知道,post一般用于提交表单,新增或修改数据...,当提交多次,会新增多次数据,所以它默认情况是非性操作....,也不会新增资源,所以它是性操作 性应用场景 在上面的http默认性中,我们可以看出,post方法是非(当然不止post一个).而且,我们正常后端写接口,用最多应该是post...接口实现性 防重复提交 在上面的例子可以看出, 本文为仙士可原创文章,转载无需和我联系,但请注明来自仙士可博客www.php20.cn

    54410

    【Java】几道常见秋招面试题

    但继续多次刷新请求,订单ID为2最终状态都是一致 POST是非,有副作用 比如我想要创建一个名称叫3y订单:`http://localhost/order`,使用`POST`多次请求,此时可能就会创建多个名称为...从上面我们也可以看出,POST方法是非。但我们可以通过一些手段来令POST方法接口变成是。 说了那么多,那接口设计成好处是什么????...(这是不合理,一个人只能选一门课,而我抢到了多门或者多次重复课) 涉及到商城应用场景可能就是:用户下了多个重复订单了 如果我抢课接口是的话,那就不会出现这个问题了。...因为是多次请求某一个资源应该具有同样副作用。 在数据库后台最多只会有一条记录,不存在抢到多门课现象了。 说白了,设计性接口就是为了防止重复提交(数据库出现多条重复数据)!...网上有博主也分享了几条常见解决重复提交方案: 同步锁(单线程,集群可能会失效) 分布式锁如redis(实现复杂) 业务字段加唯一约束(简单) 令牌表+唯一约束(简单推荐)---->实现接口一种手段

    66420

    十道常见面试题

    但继续多次刷新请求,订单ID为2最终状态都是一致 POST是非,有副作用 比如我想要创建一个名称叫3y订单:`http://localhost/order`,使用`POST`多次请求,此时可能就会创建多个名称为...https://www.zhihu.com/question/27622127/answer/37676304 9.2接口查阅资料时候,可以发现很多博客都讲了接口性。...从上面我们也可以看出,POST方法是非。但我们可以通过一些手段来令POST方法接口变成是。 说了那么多,那接口设计成好处是什么????...因为是多次请求某一个资源应该具有同样副作用。 在数据库后台最多只会有一条记录,不存在抢到多门课现象了。 说白了,设计性接口就是为了防止重复提交(数据库出现多条重复数据)!...网上有博主也分享了几条常见解决重复提交方案: 同步锁(单线程,集群可能会失效) 分布式锁如redis(实现复杂) 业务字段加唯一约束(简单) 令牌表+唯一约束(简单推荐)---->实现接口一种手段

    51420

    什么是性?(处理是什么意思)

    换句话说,PATCH 请求是会执行某个程序,如果重复提交,程序可能执行多次,对服务器上资源就可能造成额外影响,这就可以解释它为什么是非了。...,所以它是有可能是非操作。...但是,我们现在从 RESTful 资源角度来看待问题,HTTP GET 方法是,所以它适合作为查询操作,HTTP POST 方法是非,所以用来表示新增操作。...但是,实际上,两个方法都用于创建资源,更为本质差别是性。HTTP POST 方法是非,所以用来表示创建资源,HTTP PUT 方法是,因此表示更新资源更加贴切。...根据上面的描述,PATCH 方法是非,因此我们设计我们服务端 RESTful API 时候,也需要考虑。

    65230

    如何理解 RESTful

    HTTP PATCH方法 HTTP PATCH方法是非。HTTP POST方法和HTTP PUT方法可能比较好理解,但是HTTP PATCH方法只是更新部分资源,怎么是非呢?...换句话说,PATCH请求是会执行某个程序,如果重复提交,程序可能执行多次,对服务器上资源就可能造成额外影响,这就可以解释它为什么是非了。 可能你还不能理解这点。...但是,我们现在从RESTful资源角度来看待问题,HTTP GET方法是,所以它适合作为查询操作,HTTP POST方法是非,所以用来表示新增操作。...但是,实际上,两个方法都用于创建资源,更为本质差别是性。HTTP POST方法是非,所以用来表示创建资源,HTTP PUT方法是,因此表示更新资源更加贴切。...根据上面的描述,PATCH方法是非,因此我们设计我们服务端RESTful API时候,也需要考虑。

    1.1K10

    如何理解 RESTful

    HTTP PATCH方法 HTTP PATCH方法是非。HTTP POST方法和HTTP PUT方法可能比较好理解,但是HTTP PATCH方法只是更新部分资源,怎么是非呢?...换句话说,PATCH请求是会执行某个程序,如果重复提交,程序可能执行多次,对服务器上资源就可能造成额外影响,这就可以解释它为什么是非了。 可能你还不能理解这点。...但是,我们现在从RESTful资源角度来看待问题,HTTP GET方法是,所以它适合作为查询操作,HTTP POST方法是非,所以用来表示新增操作。...但是,实际上,两个方法都用于创建资源,更为本质差别是性。HTTP POST方法是非,所以用来表示创建资源,HTTP PUT方法是,因此表示更新资源更加贴切。...根据上面的描述,PATCH方法是非,因此我们设计我们服务端RESTful API时候,也需要考虑。

    56020

    restful 性(什么是次法则)

    HTTP PATCH方法 HTTP PATCH方法是非。HTTP POST方法和HTTP PUT方法可能比较好理解,但是HTTP PATCH方法只是更新部分资源,怎么是非呢?...换句话说,PATCH请求是会执行某个程序,如果重复提交,程序可能执行多次,对服务器上资源就可能造成额外影响,这就可以解释它为什么是非了。 可能你还不能理解这点。...但是,我们现在从RESTful资源角度来看待问题,HTTP GET方法是,所以它适合作为查询操作,HTTP POST方法是非,所以用来表示新增操作。...但是,实际上,两个方法都用于创建资源,更为本质差别是性。HTTP POST方法是非,所以用来表示创建资源,HTTP PUT方法是,因此表示更新资源更加贴切。...根据上面的描述,PATCH方法是非,因此我们设计我们服务端RESTful API时候,也需要考虑。

    48420

    Spring Boot 接口性实现 4 种方案!

    计算机中编程中,一个操作特点是其任意多次执行所产生影响均与一次执行影响相同。函数或方法是指可以使用相同参数重复执行,并能获得相同结果函数。...三、为什么需要实现接口调用时一般情况下都能正常返回信息不会重复提交,不过遇见以下情况可以就会出现问题,如: 前端重复提交表单: 填写一些表格时候,用户填写完成提交,很多时候会因网络波动没有及时对用户做出提交成功响应...增加了额外控制业务逻辑,复杂化了业务功能; 所以使用时候需要考虑是否引入必要性,根据实际业务场景具体分析,除了业务上特殊要求外,一般情况下不需要引入接口性。...其一般不会也不应当对系统资源进行改变,所以是Post × Post 方法一般用于创建新资源。其每次执行都会新增数据,所以不是。 Put - Put 方法一般用于修改资源。...如果不存在对应 Key 或 Value 不匹配就返回重复执行错误信息,这样来保证操作。

    4K20

    Spring Boot 实现接口 4 种方案

    计算机中编程中,一个操作特点是其任意多次执行所产生影响均与一次执行影响相同。函数或方法是指可以使用相同参数重复执行,并能获得相同结果函数。...三、为什么需要实现接口调用时一般情况下都能正常返回信息不会重复提交,不过遇见以下情况可以就会出现问题,如:前端重复提交表单: 填写一些表格时候,用户填写完成提交,很多时候会因网络波动没有及时对用户做出提交成功响应...增加了额外控制业务逻辑,复杂化了业务功能;所以使用时候需要考虑是否引入必要性,根据实际业务场景具体分析,除了业务上特殊要求外,一般情况下不需要引入接口性。...其一般不会也不应当对系统资源进行改变,所以是Post×Post 方法一般用于创建新资源。其每次执行都会新增数据,所以不是。Put-Put 方法一般用于修改资源。...如果不存在对应 Key 或 Value 不匹配就返回重复执行错误信息,这样来保证操作。

    37510

    开发中常遇到接口性问题及实现

    日子过去太久了,群里讨论了性相关问题,我们今天来学习一下吧。 一、使用场景 「客户端和服务端交互时候,难免会发生一些意外。...有可能出现服务器处理完客户端请求后挂掉了导致结果未返回,或者说有的服务返回太慢,用户客户端发送了多次请求。」...重新点击下单按钮,这时候如果没有做的话,也会造成重复下单问题。 二、如何实现接口 对于前端来说,可以使用防止表单重复提交,按钮置灰、隐藏、按钮不可点击方式。...,那么可以用自动化方式去反复调用,这样会比较高效; 异常情况需要考虑到,比如除了第一次调用之外调用是否有性能问题,稍微修改一些无关紧要参数是否会破坏之类; =========== 第一,从产品业务逻辑设计和实现上...,查看是否做了,比如与时间戳进行 第二,遇到支付这些业务时候,跟多需要考虑构造支付失败,检查失败之后处理机制 第三,前端测试,通过快速点击,手动难以实现,可以使用UI自动化手段进行实现

    31320

    【前端 · 面试 】HTTP 总结(三)—— HTTP 请求方法

    [HTTP 请求方法] 前言 日常开发中,前端和服务端数据交互,使用最多大概就是 HTTP 请求了,今天我们就来总结一下所有的 HTTP 请求方法,并且了解一下后台返回一些常见状态码含义。...[HTTP 请求方法总结] GET 方法 GET 是最常用 HTTP 请求方法,会显示请求指定资源,并返回响应主体,一般对它期望是安全且。 所谓安全是指该操作用于获取信息而非修改信息。...概念简单点来说,就是指对同一个 URL 多个请求应该返回同样结果。 查询字符串(名称/值对)是 GET 请求 URL 中发送 URL 后加 ?...PUT 与 POST 方法区别在于,PUT 方法是:调用一次与连续调用多次是等价(即没有副作用),而连续调用多次 POST 方法可能会有副作用,比如将一个订单重复提交多次。...不同于 PUT 方法,而与 POST 方法类似,PATCH 方法是非,这就意味着连续多个相同请求会产生不同效果。

    55910

    我是这样给同事分析性问题

    引子 日常一些技术设计方案评审会上,经常会提到注意服务接口性问题,最近有个同学就跑到跟前问我,到底啥是性?...今天就关于服务一系列问题,在此将材料稍作整理,分享给大家~ 尤其目前分布式/微服务化今天,提供后端服务接口,注意做好性设计很有必要。 1、何为性?...注意:这里指对资源造成副作用必须是一样,但是返回值允许不同! 2、性主要场景有哪些? 根据上面对定义我们得知:产生重复数据或数据不一致,这个绝大部分是由于发生了重复请求。...阐述作用之前,我们利用资源处理应用来说明一下: HTTP与数据库CRUD操作对应: PUT :CREATE GET :READ POST :UPDATE DELETE :...3)唯一约束 常见就是利用数据库唯一索引或者全局业务唯一标识(如:source+序列号)。 这个机制是利用了数据库主键唯一约束特性,解决了insert场景问题。

    60921
    领券