通常,POST不是幂等的。但是,让我们考虑一下POST方法发送用户/密码/密码并且后端应用程序注册新用户的情况。用户是唯一的,这就是为什么相同的POST方法(具有相同的数据)不会影响服务器的原因。第二次没有创建新用户。在这种情况下,POST方法是否幂等?
HTTP POST方法实际上不是幂等的。但是,POST将始终是幂等的,这将始终基于实际的后端服务器实现。
显然,REST不是一个严格的标准,而是更多关于如何构建RESTful API的准则。
对于您的特定情况,是的,POST方法是幂等的。
没有第二次创建新用户。在这种情况下,POST方法是否幂等?
that POST处理程序是幂等的吗?是的,听起来像是。当然可以。
那个;通用客户端不会知道此specific处理程序恰好具有幂等的实现。统一接口的要点是消息语义和相应的保证在各处都是相同的。
通用客户端不能假定您的 POST处理程序是幂等的,因为HTTP standard表示my POST处理程序不一定必须是。
因此,如果我的数据库不允许重复,该怎么办?我必须打破标准,对吗?
不,您在做什么很好,并且没有违反标准。该标准不禁止POST实现成为幂等。它说客户不能假定该操作是幂等的。
在这方面,它与“安全”完全相似:标准不保证POST请求是安全的,因此不允许客户端假定它们是安全的。但是使用POST进行安全请求仍然符合我们的要求,这就是为什么我们可以执行将POST用于SOAP / GraphQL查询的原因。