这是关于 GET 方法的一般问题。
想象一下,我需要存储用户选择的最后一个分页大小:
+-------------+ +-------------+ +--------------------+ +----------+
| Size change |-> | GET request | -> | Server store pref. | -> | Response |
+-------------+ +-------------+ +--------------------+ +----------+
浏览产品列表当然是 GET 请求,更改分页大小也是 GET 请求(我们只更改size
参数):
<ul>
<li><a href="/catalog/browse/size=10&page=1">size 10</a></li>
<li><a href="/catalog/browse/size=25&page=1">size 25</a></li>
<li><a href="/catalog/browse/size=50&page=1">size 50</a></li>
</ul>
每次用户更改尺寸时,我都需要在后端存储新尺寸。
如何处理GET不应该改变状态的事实?发出查询(从而改变应用程序的状态)对我来说是错误的。有没有其他选择?
GET 请求指定资源的表示。使用 GET 的请求应该只检索数据并且应该没有其他效果。