所以我们有一个取消订阅链接 - 这本质上就是HTTP GET。
appropriate RFC说这应该是幂等的,但在我看来,用户期望他们点击一个链接来采取行动。
我已经实现了这一点,以便链接将您带到一个具有大确认按钮的页面,然后更新您的订阅,确认并显示您帐户的最终状态(我们有多种订阅类型)< / p>
但是我想知道如果这个人只是跳过了确认按钮阶段就不会有更好的用户体验......
“我是否过度思考这个问题?”这个问题的答案。肯定是的,但我想知道人们的观点是关于平衡幂等GET的最佳实践与不混淆用户期望的最佳实践......
答案 0 :(得分:6)
我会说RFC2616第9.1.2节所说的并不重要,因为你已经违反了第9.1.1节中更为重要的定义:
特别是,已经建立了GET和GET的惯例 HEAD方法不应该具有采取行动的意义 除了检索。
想象一下网络抓取工具(例如,Google)在包含此链接的您的某个网页的所有链接后的效果。你真的想要取消订阅操作吗?那肯定会是糟糕的用户体验!
答案 1 :(得分:1)
在这种情况下,幂等意味着,无论您点击链接多少次,它都会做同样的事情,即取消订阅。如果你回来,有一些解决方案会重新订阅你,这是一种触发器方法,即非幂等方法。您是否将此实施为立即取消订阅(我的首选方法是作为一个足以点击链接的用户,确保这是他们想要做的事情)或者确认页面取决于您。只需确保无论用户点击您的链接多少次并完成他们所处的流程,最后还是从您的列表中取消订阅。
答案 2 :(得分:1)
有趣的问题不是它是否是幂等的,而是它是否安全。它不是,因此一个简单的GET(例如,可能是预取的)是错误的。