【发布时间】:2015-01-19 04:20:21
【问题描述】:
我知道要制作一个无状态的应用程序,我们需要来回传输用户状态,而不是服务器保存用户状态。
但是,服务器中肯定存储了一些状态,我看了article 说存储在服务器中的状态称为资源状态。所以如果我是对的,我们通常所说的客户端状态应该与应用程序相同状态。
那么,我如何区分这两者,因为它将决定它们是应该存储在服务器中还是传输。
以购物车为例。
如果用户在完成购买之前有 5 个步骤,那么用户所处的阶段(#3,#4)似乎是应用程序状态,但这是否意味着如果他们关闭浏览器并再次点击支付,他将不得不从step1开始?
他图表中的项目呢?如果我们将其视为应用程序状态,我们需要将所有项目放入请求中。但是如果我们这样做,当用户关闭浏览器并再次登录时,他将无法再次找到他的项目,因为浏览器无法记住所有项目。所以看来我们应该把它当作资源状态。但如果是这样,当用户点击支付时,他们将有一个不同的页面:去支付或根据他的购物车是否为空说“你的购物车是空的”。那么,同样的请求输入完全相同的参数,得出的结果不同,我们还能说它是无状态的吗?
也许我理解错了,任何人都可以回答如何区分不同类型的状态以及如何区别对待它们吗?
【问题讨论】:
标签: rest web-applications architecture state stateless