Asp.net 中的状态管理维护包含ViewState,cookie,session,application,cache五种方式,以下是它们的一些比较:

1.存在于客户端还是服务端

  • 客户端:

viewstate、cookie

  • 服务端:

session、application、cache

*session:在服务端的存储方式包括4中,内存(最常用),ASP.NET State Service(Windows服务)、数据库、自定义状态提供程序

2.有效时间

  • viewstate:

只要页面关闭,其状态就失效

  • cookie:

包括临时cookie和永久cookie,临时cookie存在于浏览器内存中,只要浏览器关闭则临时cookie失效,永久cookie是在cookie对象上设置了失效时间,其保存在磁盘上,等过了失效时间即失效。cookie受客户端浏览器控制,且浏览器能够存储的cookie容量是有限的,因此当浏览器不支持cookie、人为在浏览器删除cookie或者浏览器cookie容量超出限制都会使cookie失效。

  • session:

session的状态有一个超时时间,当超过该时间后,session自动无效

  • application:

这个状态在服务器重新启动之前都是有效的。

  • cache:

设置cache无效主要有两种方式:一是设置失效时间,二是通过设置依赖项,当依赖项发生变化时,cache失效

3.可保存的数据格式

  • viewstate:字符串
  • cookie:字符串
  • session:可保存对象
  • application:可保存对象
  • cache:可保存对象

4.客户端与服务端交互时的关系

  • viewstate:

客户端与服务端的交互只能发送或操作当前页面的视图状态

  • cookie:

一般情况下,每次用户向服务端发送请求时会把当前站点的所有cookie发向服务端,但cookie允许设置路径(HttpCookie类包含Domain和Path属性),如果设置了具体的路径,则只有访问该路径时,才会把cookie发往服务端

  • session:

客户端访问同一个站点下的不同资源,使用的是同一个session,服务端和客户端通常通过cookie来进行关联,即在客户端保存sessionID,每次向服务端发起请求时都会同时把sessionID(在cookie中的主键名为“ASP.NET_SessionId”)也一起带上,这样服务端拿到sessionID后就能找到客户端对应的session,所以session只跟站点和客户端相关。

  • application:

所有客户端共享同一个application,它是全局的

  • cache:

所有客户端共享同一个cache,它是全局的,但它有更多的控制权,如设置何时失效

5.应用场景

viewstate:只存在ASP.NET WebForm中,如每个服务器端控件都包含一个视图状态

cookie:通常用于存储一些服务端相关信息的标识符,从而在cookie发往服务端后可以找到其所对应的信息,也会用来保存账户密码等相关信息

session:用于与指定的客户端共同维护一个状态,保存具体的状态信息

application:保存全局的状态信息,如该网站的访问次数

cache:保存全局的状态信息,且这些信息的失效时间可以得到更好的控制

Asp.net 中ViewState,cookie,session,application,cache的比较的更多相关文章

  1. c# Cookie,Session,Application,Cache 四种缓存使用情景

    好记性不如烂笔头,记录一下C#缓存使用的情景模式....个人理解,不正之处,欢迎指正 讨论 Cookie,Session,Application,Cache 四种,有的缓存情景对人,有的缓存情景对事儿 ...

  2. ASP.NET 的 ViewState Cookie Session 等的比較

    类型 值保存在哪 值的有效范围 备注 View State client 不能跨页面传递.仅仅能在当前页面保存数据. 在HTML中能够看到ViewState值,只是是加密. 不是明文. ViewSta ...

  3. Servlet学习笔记(1)--第一个servlet&&三种状态对象(cookie,session,application)&&Servlet的生命周期

    servlet的404错误困扰了两天,各种方法都试过了,翻书逛论坛终于把问题解决了,写此博客来纪念自己的第一个servlet经历. 下面我会将自己的编写第一个servlet的详细过程提供给初学者,大神 ...

  4. JavaWeb -cookie&session&application

    cookie&session&application总结 Cookie[key-value](不是内置对象必须new): 1. Cookie 是由服务端生成的,在发送给客户端保存 2. ...

  5. 在asp.net中如何使用Session

    2.那么在asp.net中到底该怎么使用Session呢? Session对象用于存储从一个用户开始访问某个特定的aspx的页面起,到用户离开为止,特定的用户会话所需要的信息.用户在应用程序的页面切换 ...

  6. 转载 asp.net中ViewState的用法详解

    转载原地址: http://www.jb51.net/article/73662.htm 在web窗体控件设置为runat = "server",这个控件会被附加一个隐藏的属性_V ...

  7. 19 02 03 django 中cookies 和 session 和 cache

    Session 是单用户的会话状态.当用户访问网站时,产生一个 sessionid.并存在于 cookies中.每次向服务器请求时,发送这个 cookies,再从服务器中检索是否有这个 session ...

  8. struts2 action中获取request session application的方法

    共四种方式: 其中前两种得到的是Map<String,Object>  后两种得到的才是真正的request对象 而Map就是把request对象中的属性取出做成了键值对而已. [方法一] ...

  9. ASP.NET中的Cookie对象

    1.Cookie对象 Cookie对象一般用于在客户端保存一些针对某个用户的信息. Cookie本质上只是一小段文本字符串,改字符串一般保存在用户计算机特定文件夹下的某个文件中,每个Cookie都保存 ...

随机推荐

  1. mongodb4.0.2 复制集主从部署

    介绍 复制集(Replica Sets),是一个基于主/从复制机制的复制功能,进行同一数据的异步同步,从而使多台机器拥有同一数据的都多个副本,由于有自动故障转移和恢复特性,当主库宕机时不需要用户干预的 ...

  2. Http请求-get和post的区别

    GET和POST是HTTP请求的两种基本方法. 最直观的区别就是GET把参数包含在URL中,以?的方式来进行拼接,POST通过request body传递参数.并且GET请求在URL中传送的参数是有长 ...

  3. js学习笔记----JavaScript中DOM扩展的那些事

    什么都不说,先上总结的图~   Selectors API(选择符API) querySelector()方法 接收一个css选择符,返回与该模式匹配的第一个元素,如果没有找到匹配的元素,返回null ...

  4. .net core Jenkins持续集成Linux、Docker、K8S

    jenkins插件 系统管理 -> 管理插件,安装如下插件. #如果搜索不到去掉Plugin在搜索 GitLab Plugin Gitlab Hook Plugin #使用Gitlab账号做用户 ...

  5. 第四章:Android架构

    我们对android有了个大致的了解,知道如何搭建android的环境及简单地写一个HelloWorld程序,而且知道一个android项目包括哪些文件夹和文件及相应的作用.本篇将站在顶级的高度——架 ...

  6. wxformbuilder在python如何使用

    1使用builder 创建界面并进行布局 2选择python选项 得到相应代码 将代码保存在 一个py文件里面 创建一个新的入口文件 main.py import wx import UIfile c ...

  7. IDA远程调试 在内存中dump Dex文件

    1. 首先使用调试JNI_OnLoad函数的方法,先将apk以调试状态挂起,使用IDA附加上去. 2. 然后在libdvm.so中的dvmDexFileOpenPartial函数上下一个断点 3. 然 ...

  8. Android 引用文件(.db)的三种方式

    1.assets —— 资产目录(该目录中的文件会被直接打包到 apk 文件中).获取该目录下的文件的方式是: InputStream is = getContext().getAssets().op ...

  9. 喜大普奔,SITE4J网站上线啦

    喜大普奔,SITE4J网站上线啦: 你懂的:https://peterchenhdu.club/

  10. (转)关于CNN中平移不变性的理解

    https://www.quora.com/Why-and-how-are-convolutional-neural-networks-translation-invariant https://st ...