【发布时间】:2011-07-13 11:06:02
【问题描述】:
我只想知道我对 REST 的看法是否正确。假设我们有一个购物网站。使用传统方法,购物车将存储在用户会话中,因此服务器必须为用户管理许多项目(用户#1:项目1,项目2,项目3;用户#2:项目A,项目B,项目3,...) .因此,如果有超过 1000 名用户在网站上浏览并将商品添加到他们的购物车中,则服务器必须具有大量的内存/计算能力。
在 REST 方法中没有会话,因此客户端拥有有关购物车中商品的所有信息。这意味着服务器不需要这么大的内存需求,我可以轻松地扩展它。
现在,如果我以非 REST 方法将商品添加到购物车,它将直接进入会话。另一方面,如果我在 REST 方法中添加一个项目,我必须更新数据库中的实体(/shoppingcart/1234/),这将需要更长的时间,因为我必须更深一层(客户端- >服务器->数据库)。
到目前为止这是正确的还是我遗漏或误解了一点?
【问题讨论】:
-
REST 不关心购物车是在客户端还是服务器端。就您而言,REST 是关于如何将 Web 上的资源及其操作公开给客户端。
-
好的,我已经通过 GET、POST、PUT、DELETE 理解了这一点。但是,如果我决定不在客户端管理我的购物车,那么使用 REST 会更慢,因为我只能将它们存储在数据库中而不是服务器的会话中?
-
这与 REST 没有任何关系。您将 REST 与其他一些概念混为一谈(参见this answer)。
-
@bzlm,链接没有指向任何一个答案。
-
@bzlm 您的第一条评论很好地解释了 REST,但问题仍然是可伸缩性如何与 REST 一起工作。 ?
标签: performance rest scalability