Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rest 如何创建幂等端点_Rest_State_Put_Endpoint_Httpverbs - Fatal编程技术网

Rest 如何创建幂等端点

Rest 如何创建幂等端点,rest,state,put,endpoint,httpverbs,Rest,State,Put,Endpoint,Httpverbs,我知道PUT是幂等的,但我如何通过编程确保它?创建完全幂等端点必须满足哪些条件 从RESTful服务的角度来看,对于操作或服务调用 要成为幂等函数,客户端可以在 产生同样的结果。换句话说,使多个相同 请求与发出单个请求具有相同的效果。注意 虽然幂等运算在服务器上产生相同的结果 副作用,反应本身可能不同,例如 资源的状态可能在请求之间更改 PUT应该使用请求正文中接收到的新值更新资源。因此,无论发送一次还是几次,服务器上的结果都不应该像POST那样改变,例如,更多的请求将导致冲突错误或创建多个资源

我知道PUT是幂等的,但我如何通过编程确保它?创建完全幂等端点必须满足哪些条件

从RESTful服务的角度来看,对于操作或服务调用 要成为幂等函数,客户端可以在 产生同样的结果。换句话说,使多个相同 请求与发出单个请求具有相同的效果。注意 虽然幂等运算在服务器上产生相同的结果 副作用,反应本身可能不同,例如 资源的状态可能在请求之间更改


PUT应该使用请求正文中接收到的新值更新资源。因此,无论发送一次还是几次,服务器上的结果都不应该像POST那样改变,例如,更多的请求将导致冲突错误或创建多个资源。

您必须注意幂等和安全之间的区别。幂等意味着可以根据需要频繁调用相同的方法,并得到相同的结果,但这并不意味着不会修改资源。最好的例子是delete方法/http动词。POST和PATCH既不是幂等的,也不安全,而PUT和DELETE是幂等的,但不安全。你真的是指幂等的,还是指没有副作用的安全的?幂等仅意味着,如果调用资源上的PUT,将得到相同的结果。您只需将资源的内容替换为新内容,只要资源存在,结果应该始终是HTTP状态代码200。