【发布时间】:2019-06-30 12:51:40
【问题描述】:
我正在阅读 Leonard Richardson 和 Mike Amundsen 的 RESTful Web APIs。在第 11 章中,他们写到了 HTTP/1.1 中的流水线(第 247 页):
客户端可以通过管道传输任何一系列的幂等 HTTP 请求,只要该系列作为一个整体也是幂等的。 […]
我将通过管道发送两个请求。首先,我将检索资源的表示,然后我将删除该资源:
GET /resource
DELETE /resourceGET 和 DELETE 是幂等的,但它们的组合不是。如果在我发送这些请求后出现网络问题,并且我没有从管道中获得第一个响应,我将无法再次发送请求并获得相同的结果。该资源将不再存在。
在我的理解中,幂等性是指多次发送请求后,资源状态与只发送一次请求后的状态相同。在这种特殊情况下,资源状态保持不变,因为在第二次请求后资源仍然被删除。
为什么作者将这种请求组合称为非幂等的?
【问题讨论】: