7

我一直在阅读 GET HTTP 方法,尤其是它的幂等性。

这是我的理解:如果我调用 GET 操作 1 次或 100 万次(或任意次数),结果应该是相同的。

我对这个定义的问题是这样的。
想象一下,如果我有一个电影数据库,并且我执行了一个 GET 操作,在该操作中我返回了数据库中的所有詹姆斯邦德电影。
想象一下,我运行这个查询一百万次,在第 500,000 次之后,其他人在数据库上运行 POST 查询,添加了一部新的邦德电影。
好吧,现在一半的 GET 操作返回 N 个结果,另一半返回 N+1 个结果。

这不是像通常描述的那样破坏幂等性吗?一个函数的幂等性是不是更好的定义是只要底层数据不变,
无论执行多少次,它都会返回相同的结果?

4

2 回答 2

2

GET idempotent 因为它不(或不应该)改变资源。这并不要求资源是静态的,并且没有其他任何东西(如帖子)永远不会改变它。

于 2012-10-05T19:05:11.037 回答
2

GET幂等性是关于调用不会改变被调用的资源这一事实。

其他方法做什么是另一回事。

于 2012-10-05T19:05:53.043 回答