有状态的经验

Jer*_*emy 1 state

Web应用程序可以为用户提供有状态体验的三种方式是什么?(使用http)我知道Sessions和Cookies是其中两种,但不知道第三种(数据库??)

是讲座的问题.

mjv*_*mjv 7

实际上只有两种方法:

  • 识别每个请求背后的用户,并将此标识与会话上下文关联(存储在内存中,数据库中,在哪里)这是会话ID或cookie(用于ID目的)的来源.
  • 管理客户端传回100%的上下文(将上下文嵌入客户端将使用的URL或表单中; ViewState以这种方式工作(*).此外,还可以使用Cookie来存储上下文.

上下文数据在请求之间保持的方式,对于基于识别用户的系统,提供身份的方式,在上面列出的两种方法上提供了许多变化.例如:

  • 数据库中的上下文
  • 记忆中的背景
  • 文件中的上下文
  • 在ViewState(*)中传递的上下文
  • 背景......,
  • 存储在cookie中的上下文
  • 来自SessionID的ID传递给URL/Form
  • 来自Cookie的ID

(*)编辑:我最初将ViewState标记为会话ID传递设备,但正如erikkallen所指出的,ViewState的默认使用是传递上下文信息,而不是ID.

然而,最终,这一切都取决于上下文是存储服务器端还是与每个请求一起移入/移出客户端.