use*_*050 32 rest session-state
我想这个问题听起来很熟悉,但我还是另一个被REST困惑的程序员.
我有一个传统的Web应用程序,从StateA到StateB等等.如果用户去了StateB的(URL),我想确保他之前访问过StateA.传统上,我使用会话状态执行此操作.
由于REST中不允许会话状态,我该如何实现?
KP *_*lor 50
这有两个REST答案,具体取决于您要做的具体操作.
如果您真的想要管理基于请求的状态(例如当用户正在通过多屏幕向导或其他一些基于导航的工作流程时),那么REST的答案是该状态应该来回发送每个请求/响应(使用隐藏文本字段,查询字符串或存储在表单中的POST数据).这是Martin Fowler的"客户状态"设计模式的实现(在他的书"企业应用程序架构模式 "中详细介绍;请参阅此处以供参考).
另一方面,如果您尝试在服务器上管理某种新对象(例如购物车),那么REST的答案是您实际上正在创建一个可以像任何其他方式一样访问的新实体.直接网址.是否将此新实体存储在数据库或应用程序内存中(如传统的Session对象)取决于您,但无论如何,新对象不是关于服务器上的"状态",而是关于创建新实体的更多信息.用户与之交互的实体.
| 归档时间: |
|
| 查看次数: |
25364 次 |
| 最近记录: |