我对Roy Fielding提出的REST替代HTTP cookies方案的理解是否正确?
主题偏好实现:完全符合原意
你设计的深色/浅色主题切换逻辑完全匹配Roy Fielding提出的偏好状态实现思路:
- 所有应用状态(主题选择)都完整嵌入URI,没有依赖Cookie或服务端会话存储,单次请求本身携带全部必要的上下文信息
- URI数量可控,仅对应有限的状态组合,不会出现无限制膨胀的问题
- 页面内所有超链接自动携带当前状态参数,符合REST的超媒体驱动要求,用户不需要额外操作即可保持状态一致性
购物车实现:不符合原意
你设计的购物车参数拼接URI的方案和Fielding的描述有明显偏差:
Fielding明确要求购物车属于客户端存储的应用状态,不需要放到URI中传递:
- 把全量商品ID、数量拼接进URI的方案会导致URI长度随商品数量增加无限膨胀,还存在被缓存、日志泄露敏感数据的风险
- 符合原意的实现逻辑是:购物车数据全程存储在用户本地(浏览器侧存储),只有用户发起结账操作时,才将本地存储的购物车数据通过请求体提交给结账接口,全程不需要服务端存储购物车会话,也不需要在URI中携带购物车状态
内容的提问来源于stack exchange,提问作者Géry Ogam
相关产品推荐
相关产品推荐

