有状态的经验

时间:2009-10-22 01:25:53

标签: state

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

是讲座的问题。

5 个答案:

答案 0 :(得分:7)

实际上只有两种方法

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

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

  • 数据库中的上下文,
  • 内存中的上下文
  • 文件中的上下文
  • 在ViewState(*)
  • 中传递的上下文
  • context ...,
  • 存储在cookie中的上下文
  • 来自SessionID的ID传递给URL /表格
  • 来自Cookie的
  • ID

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

然而,最终,这一切都取决于上下文是存储在服务器端还是在每次请求时从客户端传送到客户端。

答案 1 :(得分:0)

有三个以上。

  • 会话状态
  • 查看州
  • Cookies
  • 数据库
  • 高速缓存
  • 将数据写入文件

基本上,任何可用于在Web请求中保留数据的内容都可用于存储状态。

答案 2 :(得分:0)

Querystrings 是执行此操作的最常用方法之一。 E.g。

http://www.site.com/products/index.aspx?productId=3&page=2&showInactive=n

答案 3 :(得分:0)

看起来像是一个家庭作业问题。无论如何,它很模糊..跟踪用户的方法?存储用户数据的方法?

可以使用Cookie,网址令牌或隐藏字段(如果是表单)进行跟踪。

存储数据可以通过多种方式完成。

最常见的情况是在cookie中存储会话ID,并使用该ID来检索用户的会话。

答案 4 :(得分:0)

AJAX是使无状态Web应用程序显示为有状态的第3部分。

它仍在幕后提交请求,但对用户而言 - 屏幕不会刷新或看起来像网站。

您可以拥有一个数据库驱动的网站,但它不会是有状态的。