State 有状态的经验

State 有状态的经验,state,State,web应用程序为用户提供有状态体验的三种方式是什么?(使用http)我知道会话和cookie是其中的两种,但不知道第三种(数据库??) 是的,一个讲座上的问题。不止三个 会话状态 视图状态 饼干 数据库 缓存 将数据写入文件 基本上,任何可以在web请求中持久化数据的东西都可以用来存储状态。有三种以上 会话状态 视图状态 饼干 数据库 缓存 将数据写入文件 基本上,任何可以在web请求中持久化数据的东西都可以用来存储状态。实际上只有两种方法: 识别每个请求背后的用户,并将此标识与会话上

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


是的,一个讲座上的问题。

不止三个

  • 会话状态
  • 视图状态
  • 饼干
  • 数据库
  • 缓存
  • 将数据写入文件

基本上,任何可以在web请求中持久化数据的东西都可以用来存储状态。

有三种以上

  • 会话状态
  • 视图状态
  • 饼干
  • 数据库
  • 缓存
  • 将数据写入文件

基本上,任何可以在web请求中持久化数据的东西都可以用来存储状态。

实际上只有两种方法:

  • 识别每个请求背后的用户,并将此标识与会话上下文(存储在内存中、数据库中,如果有的话)相关联,会话ID或cookie(用于ID目的)就是在该上下文中出现的
  • 管理客户端传回100%的上下文(将上下文嵌入客户端将使用的URL或表单中;ViewState以这种方式工作(*)。此外,还可以使用cookie存储此类上下文
在请求之间保存上下文数据的方式,以及对于基于识别用户的系统,提供身份的方式,提供了上述两种方法的多种变体。例如:

  • 数据库中的上下文
  • 记忆中的语境
  • 文件中的上下文
  • 在ViewState(*)中传递的上下文
  • 上下文
  • 存储在cookie中的上下文
  • URL/Form上传递的SessionID中的ID
  • 来自Cookie的ID
(*)编辑:我最初将ViewState标记为会话ID传递设备,但正如erikkallen所指出的,ViewState的默认用法是传递上下文信息,而不是ID


然而,最后,这一切都取决于上下文是存储在服务器端,还是随每个请求往返于客户端。

实际上只有两种方法:

  • 识别每个请求背后的用户,并将此标识与会话上下文(存储在内存中、数据库中,如果有的话)相关联,会话ID或cookie(用于ID目的)就是在该上下文中出现的
  • 管理客户端传回100%的上下文(将上下文嵌入客户端将使用的URL或表单中;ViewState以这种方式工作(*)。此外,还可以使用cookie存储此类上下文
在请求之间保存上下文数据的方式,以及对于基于识别用户的系统,提供身份的方式,提供了上述两种方法的多种变体。例如:

  • 数据库中的上下文
  • 记忆中的语境
  • 文件中的上下文
  • 在ViewState(*)中传递的上下文
  • 上下文
  • 存储在cookie中的上下文
  • URL/Form上传递的SessionID中的ID
  • 来自Cookie的ID
(*)编辑:我最初将ViewState标记为会话ID传递设备,但正如erikkallen所指出的,ViewState的默认用法是传递上下文信息,而不是ID


然而,归根结底,这一切都取决于上下文是存储在服务器端,还是随每个请求往返于客户端。

查询字符串是最常见的方法之一


查询字符串是最常用的方法之一


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

跟踪可以通过cookie、url标记或隐藏字段(对于表单)完成

存储数据可以有很多不同的方法


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

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

跟踪可以通过cookie、url标记或隐藏字段(对于表单)完成

存储数据可以有很多不同的方法


最常见的场景是将会话id存储在cookie中,并使用该id检索用户的会话。

AJAX是使无状态web应用程序显示为有状态的第三个步骤

它仍然在幕后提交请求,但对用户来说,屏幕不会刷新或看起来像一个网站


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

AJAX是使无状态web应用程序显示为有状态的第三部分

它仍然在幕后提交请求,但对用户来说,屏幕不会刷新或看起来像一个网站


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

这些也起作用:*控件状态(类似于ViewState)*隐藏字段*配置文件属性*应用程序状态这些也起作用:*控件状态(类似于ViewState)*隐藏字段*配置文件属性*应用程序状态您的示例查询字符串不表示状态。我以为它们表示状态。“…查询字符串是另一种ASP.NET客户端状态管理技术。”从ASP.NET-查询字符串-客户端状态管理-我想我知道你的意思。我可能是粗心了-编辑后你的示例查询字符串不代表状态。我以为它们代表状态。“…查询字符串是另一种ASP.NET客户端状态管理技术。”从ASP.NET-查询字符串-客户端状态管理-我想我知道你的意思。我可能很粗心-编辑的postViewState是客户端传回的100%上下文的特例(除非你更改默认行为)。@erikkallen