状态管理之一(概览)

简介:

Web服务器每分钟对上千个用户进行管理的一种方式就是执行所谓的“无状态”连接。只要有一个浏览器希望返回一个页面、图像或其他资源的请求,就会发生以下事情:
1、连接到服务器
2、告诉服务器想要的页面、图像或者其他项
3、服务器发送请求的资源
4、服务器切断连接把用户忘得干干净净
这样来说,Web 显然是断续的,而在我们真实的开发过程中,很多状态往往需要被保留的,例如,如果用户将信息输入到文本框,该信息在从浏览器或客户端设备到服务器的往返行程中我们可能希望被一直保留着。Asp.net中提供了很多保存状态的机制,下面我们来分析分析这些机制。

 

允许存放的数据类型

存储位置

生命周期

范围

安全性

性能

典型使用场景

视图状态

所有可序列化的数据类型

当前页的隐藏域中(input hidden

持久化于当前页面的postback过程中,会随着当前页的消失而消失

仅限当前页

比隐藏域安全性要好,但它可以被篡改。如果直接查看页输出源,可以看到隐藏域中的信息,这导致潜在的安全性问题

因为数据一直保留在往返的页面中,如果存储大量信息会增大传输时间。

单页状态管理时

控件状态

与视图状态相同

与视图状态相同

与视图状态相同

与视图状态相同

与视图状态相同

与视图状态相同

一些视图状态被禁,仍然需要被保存的重要的控件状态

查询字符串

有限数量的字符串

浏览器地址栏中

当输入新地址或关闭浏览器时消失,它可以用于存储两个访问的状态

限目标页

因为是保存在浏览器的地址栏中,所以非常容易被篡改。

因为只存储少量数据,基本没什么性能问题

存储在页间的少量非敏感信息,比如分类id的页间传递。

Cookie

字符串

客户端的计算机中

根据具体设置可以用于多页面的持久化。

整个Asp.net应用程序

可以被用户篡改

因为只存储少量数据,基本没什么性能问题

网站的一些个性化信息。

隐藏域

字符串

客户端页面中

存储于post页面中,可以传递页间信息

存在于当前页中,在目标页中读取

可以被用户篡改

因为存储于页面中,不应该存储大量数据。

Asp.net中很少直接使用。

应用程序状态

所有.net类型

服务器端内存

服务器不重启动则一直有效

整个Asp.net应用程序

因为是存储在服务端,所以不易被篡改,比较安全

占用服务器资源,存储大量数据可能使服务器变慢,而且服务器不重新启动则一直占用资源。

整个Asp.net应用程序的全局数据

会话状态

 

所有可序列化的数据类型

服务器内存或数据库中

根据服务器配置的时间而定(默认为20分钟)

整个Asp.net应用程序

因为是存储在服务端,所以不易被篡改,比较安全

占用服务器资源,存储大量数据可能使服务器变慢

比如用户登陆信息等

配置文件属性

所有可序列化的数据类型

数据库中

一直有效

整个Asp.net应用程序

相当安全

比较适合存储大数据量,但需要考虑数据库性能

用户的一些自定义信息

缓存

所有.net类型

服务器内存

依赖于设置的缓存策略

整个Asp.net应用程序

相当安全

占用服务器资源,存储大量数据可能使服务器变慢

为了不用再次访问数据库而存储的一些常用信息。



本文转自 你听海是不是在笑 博客园博客,原文链接:http://www.cnblogs.com/nuaalfm/archive/2009/03/04/1403080.html   ,如需转载请自行联系原作者
相关文章
|
20天前
详情功能的实现
详情功能的实现。
12 1
|
15天前
|
SQL 自然语言处理 数据管理
数据管理DMS操作报错合集之在DMS任务编排中,如果一个任务节点被标记为“已取消”,即使任务节点都是成功执行的,也会告警吗
数据管理DMS(Data Management Service)是阿里云提供的数据库管理和运维服务,它支持多种数据库类型,包括RDS、PolarDB、MongoDB等。在使用DMS进行数据库操作时,可能会遇到各种报错情况。以下是一些常见的DMS操作报错及其可能的原因与解决措施的合集。
|
14天前
|
数据采集 DataWorks 安全
DataWorks产品使用合集之DataWorks中,如果一个虚拟节点被设置为冻结状态,那么它的所有子节点也将被冻结如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
34 0
|
19天前
|
专有云 API 调度
管理实例状态
管理实例状态
13 3
|
2月前
|
专有云 API 调度
实例的管理状态
管理实例状态的常见操作及说明如下:
22 4
|
6月前
|
DataWorks
DataWorks中,如果你想要在工作空间中绑定引擎信息
DataWorks中,如果你想要在工作空间中绑定引擎信息
19 1
|
12月前
|
XML 数据格式
如何使用流程 中的 DataObject 并为流程设置租户
如何使用流程 中的 DataObject 并为流程设置租户
|
12月前
|
SQL 运维 资源调度
Dataphin自定义资源组功能全新上线!
V3.10 版本中,Dataphin 全新上线调度资源分组管理的功能,能够帮助您统一管理部署Dataphin实例的物理机集群资源。您可以将资源划分为不同的配额组,不同资源组之间的资源配额互相独立,并支持为不同租户、统一租户下不同项目内的任务单独指定调度时使用的自定义资源组,从而保障核心任务的资源不被抢占,同时也提升整体资源利用率。
408 0
jira学习案例98-跨组件状态管理
jira学习案例98-跨组件状态管理
76 0
jira学习案例98-跨组件状态管理
|
开发者
控制台提交和管理作业 | 学习笔记
快速学习控制台提交和管理作业
79 0
控制台提交和管理作业 | 学习笔记