ASP.NET状态保存方式(客户端保存和服务器端保存)

  次阅读 作者:智能小宝 来源:互联网 2016-01-27 15:32 我要评论(0)

ASP.NET状态保存分为客户端保存和服务器端保存两种:

使用客户端选项存储页信息而不使用服务器资源的这些选项往往具有最低的安全性但具有最快 的服务器性能,因为对服务器资源的要求是适度的。但是,由于必须将信息发送到客户端来进行存储,因此对于以这种方式可以存储多少信息存在一定的客观限制。

客户端保存的方式一般有如下4种:

1 ViewState:

利用场合为:在对同一页的多个请求间自动保留值,多用于客户端的一些事件。,典型利用场合为:页面信息重置, 登陆出错次数统计,Grid列排序等。

优点:不利用服务器端资源,实现简单,相对高的安全性:因为经过哈希计算和压缩,并且针对 Unicode 实现进行编码。

缺点:因为ViewState存储在页面本身,所以无法存储较大的值。并且通过源文件可以看见其中的值 ,虽然经过哈希计算和压缩,但仍有被篡改的风险。

可存储的类型:string,integer,bool,array,arr aylist,hashtable以及其他可以序列化的类型。

2 HiddenField:

利用场合为:存储少量页面中经常改动的信息,多和客户端脚本一块使用,典型利用场合为:客户端经历一系列验证之后向服务器端回发,服务器端从客户端HiddenField中获取值,进行处理。例如 :LeyserHomepage中,要删除一项产品,需要在客户端弹出确认Form,用户确认之后再PostBac k回服务器端进行数据库Delete操作,当用户确认要删除时,将当前要删除的产品ID存放到一个HiddenField中,然后执行 Form(0).submit回发到服务器端,服务器端再从HiddenField获取产品ID值,进行数据库操作。

优点:不使用服务器资源 ,广泛支持,实现简单

缺点:安全性不高,因为它被包含在页面上进行发送,所以可以通过源文件看见他的内容。存储结构少,仅仅支持 string,integer,bool,array,arraylis t等简单的数据结构。并且在其上只存放简单的单值,若要存放多值,需要额外编码。存储量少,因为它被存储在页面本身,所以无法存储较大的值。而且大的数据量会受到防火墙和代理的阻止。 注意: 使用了HiddenField之后,需要回发到服务器进行处理,应该使用Http Post方法而不是Http Get方法(通过URL请求访问)3 Cookie:

利用场合为:存储少量页面中经常改动的信息,典型利用场合为:为登陆过的网站保存登陆用户名,为用户输入提供方便 ,还有在一些用户自定义项目上保存用户的个性化设置。

优点:不使用服务器资源,实现简单,可配置到期时间。

缺点:大小受到限制,一般浏览器支持的最大的Cookie 容量为4096字节。客户端用户可能会配置为拒绝Cookie。安全性:保存在客户端的信息可能会被恶意用户修改或者获取,所以不应该保存敏感信息。持久性:保存期限受到客户端的配置影响。

Cookie 通常用于 存取已知用户自定义内容的个性化情况。在大多数此类情况中,Cookie 是作为 标识 而不是 身份验证 ,所以在 Cookie 中只存 储用户名、账户名或唯一用户 ID(例如 GUID)并使用它来访问站点的用户个性化结构是足够的了。

4 QueryString:

利用场合为: 将信息从一页传递给另一页的最简单的方法。

优点:不使用服务器资源,支持广泛,实现简单

缺点:安全性,因为直接在URL 中暴露给用户 ,所以有被篡改的风险。容量有限,一般的浏览器都有255个字符的限制。只有在通过其 URL 请求页时查询字符串才是可行的选择。不能从已提交给服务器的页读取 查询字符串。

视图状态:需要为将回发到自身的页存储少量信息。 ViewState 属性的使用将提供具有基本安全性的功能。(www.3lian.com)

隐藏域:需要为将回发到自身或另一页的页存储少量信息,并且不需要较高的安全性。 (客户端事件)只能在提交到服务器的页上使用隐藏域。

Cookie:需要在客户端存储少量信息并且不需要较高的安全性。(个性化)

查询字符串: 可以将少量信息从一页传输到另一页,并且不需要较高的安全性。 (页面跳转 )只有在请求同一页,或通过链接请求另一页时,才能使用查询字符串。服务器端保存方式一般有如下3种:

存储页信息的服务器端选项往往比客 户端选项具有更高的安全性,但它们可能使用更多的 Web 服务器资源,这可能在信息存储量较大时导致可缩放性问题。

1 Application:

利用场合:所有的请求都会需要的一些共有资源,由最先的一个请求率先获取之后,拿出来共享,其他的请求就不用浪费资源进行再次获龋典型利用场合:一个股市 Web 站点可能在一天中每 5 分钟从数据库获取大量的金融股票信息(也许是 40 MB 的数据),然后将这些信息缓存在应用程序状态中,这样所有以后的查找请求都可以在应用程序状态中访问这些信息。其结果是极大地提高了每个请求的性能,因为传入的请求不需要跨进程、跨计算机或数据库的往返过程。(www.3lian.com)

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...