REST保存GET历史记录

问题描述 投票:-1回答:1

阅读REST协议我已经看到GET调用不应该更新服务器/应该是幂等的,所以我想:如果我想要保存用户搜索(由GET调用发出)怎么办?我的结论是,因为它是幂等操作(首先和N保存对服务器具有相同的效果),在这种情况下,GET调用可以修改服务器数据。

我对吗?

谢谢

rest get
1个回答
1
投票

如果我想要保存用户搜索(由GET调用发出)怎么办?

当然,请继续前进。

我的结论是,因为它是幂等操作(首先和N保存对服务器具有相同的效果),在这种情况下,GET调用可以修改服务器数据。

你的结论很好,你的推理有点软。

罗伊菲尔丁,writing in 2002

HTTP不会尝试要求GET的结果是安全的。它的作用是要求操作的语义是安全的,因此它是实现的错误,而不是接口或接口的用户,如果发生任何导致财产损失的结果(金钱,BTW,为了这个定义,它被认为是财产。

这里的关键思想是语义区分:HTTP统一接口定义GET是safe

如果请求方法的定义语义基本上是只读的,则被认为是“安全的”;即,作为对目标资源应用安全方法的结果,客户端不请求并且不期望源服务器上的任何状态改变。同样,合理使用安全方法预计不会对原始服务器造成任何伤害,财产损失或异常负担。

服务器可以以任何方式处理请求(例如,记录所有这些请求)。

© www.soinside.com 2019 - 2024. All rights reserved.