会话状态和视图状态之间的差异

Anonim

会话状态与视图状态

众所周知,Web本身可以定义为无状态。这意味着每次需要特定Web页面时,必须在每次将其发布到服务器时重新创建。另一方面,HTTP协议无法在页面上保存客户端信息。因此,建议使用状态管理。状态管理是一种允许管理页面状态和服务器端的方法。

有两种类型的状态管理。这些是会话状态和视图状态。两者之间的主要区别在于,视图状态管理主要处理客户端的状态管理。它的配置是为最终用户简化状态管理。另一方面,存在会话状态管理,其主要处理Web的服务器端,从而也允许容易的内容管理。

差异

视图状态仅保持在单个级别,即页面级别。这限制了可以在页面上进行的更改。另一方面,会话状态保持在会话级别。如果您希望查看视图状态,则只能在单个页面上执行此操作,而不能在任何其他页面上执行此操作。这与会话状态形成鲜明对比,会话状态在所有页面中都可用,前提是这些页面属于用户会话的范围。

在视图状态下收集的信息仅为客户端存储,不能传输到任何其他位置。会话状态将其信息存储在服务器中,并且可以由任何有权访问存储信息的服务器的人访问。使用视图状态时,特定页面发布的值将保留在客户端正在使用的浏览区域中,并且仅在整个操作完成时才回发。与会话状态相比,这是一个鲜明的对比,在会话状态下数据保持可用,直到会话完成或浏览器关闭为止。在所有这些时间,服务器都可以获得数据。

在使用视图状态时,存在页面实例特定数据的持久性的趋势,而会话状态的使用伴随着服务器端上可用的用户特定数据的持久性的趋势。视图状态的有效性尤其在回发中。同样重要的是要注意,视图状态仅与可序列化数据同义。由于数据暴露给客户端,因此无法保证处于视图状态的安全性。如果需要数据安全性,则可以对其进行加密。另一方面,会话状态仅对类型对象有效。

摘要:

查看状态 - 仅在页面级别维护。

- 只能从单个页面而不是多个页面显示视图状态。

- 仅存储在客户端的信息。

- 视图状态将在发生回发操作时保留值。

- 视图状态用于允许页面实例特定数据的持久性。

会话状态 - 维持在会话级别。

- 会话状态值可用性在用户会话中可用的所有页面中。

- 存储在服务器中的会话状态信息。

- 在会话状态中,用户数据保留在服务器中。在用户关闭会话或浏览器关闭之前,数据的可用性得到保证。

- 会话状态用于服务器端的用户特定数据的持久性。