2017-12-27 380 views
-1

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

我对不对?

感谢

回答

1

如果我想在用户搜索(用GET调用制造)才可以得救?

好的,马上往前走。

我的结论是,由于它是一个幂等操作(第一个和N存储在服务器上具有相同的效果),在这种情况下,GET调用可以修改服务器数据。

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

罗伊菲尔丁,writing in 2002

HTTP不会试图要求GET的结果是安全的。它所要求的是要求操作的语义是安全的,并且因此它是实现的错误,而不是接口 或该接口的用户,如果发生任何事情,结果导致 造成财产损失(货币,BTW,被认为是该定义的 的财产)。

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

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

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