Session、Cookie、Application、localStorage

标签: Session Cookie Application localStorage
11人阅读 评论(1) 收藏 举报
分类:

前言:

在学习Asp.net的时候看到这些存储数据的对象,以后会经常使用,所以记录一下。

内容:

1、Session对象

Session对象用来保存与特定用户相关的信息,Session 中的数据保存在服务器端,在客户端需要的时候创建 Session,在客户端不需要的时候销毁Session,使它不再占用服务器内存。前面说了服务器并不管客户端是否依然存在,因而它也无法确定客户端什么时间不再使用它,但是如果在客户端不再用的时候不及时销毁Session 的话,服务器很快就会内存不足。

为了解决这个问题,给 Session 加了一个生命周期,当服务器发现 Session超过了它的生命周期,就会释放该 Session 所占用的内存空间。在 asp.net 中 Session 的默认生命周期是 20 分钟,也就是当我们在9:00 的时候设置了一个 Session,如果在 9:20 之前客户端没有任何请求,那么它的生命周期就到 9:20 分钟结束。但是一旦用户在 9:19又向服务器发送了一个请求,那么这个 Session 现在的生命周期就是在当前时间的基础上再加上20 分钟,也就是此时这个 Session 的生命周期是到9:39 结束。

(1)Session具有以下特点:

Session中的数据保存在服务器端;

Session中可以保存任意类型的数据;

Session默认的生命周期是 20 分钟,可以手动设置更长或更短的时间。

(2)获取 Session的值的代码如下:

stringuserName;
if(Session["UserName"]!=null)
{
//当指定名称的Session存在时,获取指定Session的值
userName=(string)Session["UserName"];
} 

2、Cookie对象

Cookie 对象和Session 对象一样也是用来保存特定的用户相关的数据,不过 Session不同的是Cookie保存在客户端而不是服务器上,每次客户端发出请求的时候都会把Cookie一起发送到服务器,服务器每次响应客户端请求的时候会重新把Cookie 发送到客户端保存。

(1)Cookie保存数据有以下特点:

Cookie中的数据保存在客户端;

Cookie中只能保存字符串类型的数据,如果需要在 Cookie 中保存其它类型数据,需要将其转换成字符串类型后保存;

Cookie也有其默认生命周期,也可以手动设置,最大可设置成 50 年之后过期。

同 Session的情况一样,有可能在一个网站中使用到的 Cookie 不止一个,我们仍通过Cookie的名称来区分不同的 Cookie。

设置 Cookie的过程就是在服务器的响应对象 Response 的 Cookie 集合中增加一个Cookie的实例,Response 对象会把这个 Cookie 集合中的所有 Cookie 都发送客户端。代码如下(仍以保存用户名为例):


HttpCookiecookie = new HttpCookie("UserName", "zhoufoxcn");
Response.Cookies.Add(cookie);

获取 Cookie就是从客户端的请求对象中找到对应名称的 Cookie,当然也有可能出现

Cookie不存在的情况,所以在获取之前也需要检查指定名称的 Cookie 是否存在,代码如

下:


stringuserName; 
if(Request.Cookies["UserName"] !=null)
{
userName= Request.Cookies["UserName"].Value;
} 

Session 和Cookie 一般用来一些针对特定用户的信息,比如用于保存用户名等,因为是针对特定用户的,所以不会针对张三设置用户名保存在Session或者Cookie中之后再去获得这个值的时候得到的是李四的用户名。但是在某些情况下,我们又希望保存一些共有信息,这样大家都能设置或者获取,比如自从服务器启动以来某个页面被打开的次数,这时用Session 或者 Cookie 就不合适了。这就需要用 Application 了。

3、Application对象

Application和 Session 存储的数据类型和存储位置一样,都是存放 Object 类型的数

据(也就是任意类型),并且存放在服务器上,不同的Application 中的数据可以由网站中所有的用户来设置或者获取。并且 Application中存放的数据没有时间限制,除非我们手动删除或者服务器重新启动,否则存放的数据都会丢失。

4、localStorage

使用 Web Storage 存储键值对比存储 Cookie 方式更直观,而且容量更大,它包含两种:localStorage 和 sessionStorage。cookie大小貌似是4k左右,ocalStorage本地存储,大小为5M左右。

(1)sessionStorage(临时存储) :为每一个数据源维持一个存储区域,在浏览器打开期间存在,包括页面重新加载

sessionStorage 方法:针对一个 session 进行数据存储。当用户关闭浏览器窗口后,数据会被删除。

(2)localStorage(长期存储) :与 sessionStorage 一样,但是浏览器关闭后,数据依然会一直存在

localStorage 方法:存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。

5、Session、Cookie、Application、localStorage区别

名称使用范围存储位置存放数据类型生命周期
Session特定用户服务器Object,也就是任意类型有,可以自行设置
Cookie特定用户客户端String,也就是字符串可以自行设置
Application所有用户服务器Object,也就是任意类型
localStorage客户端

查看评论

cookie, sessionStorage and localStorage 之间的区别 与定义和应用;

[摘要:sessionStorage 战 localStorage 是HTML5 WebStorage API 供应的,能够轻易的正在web要求之间保管数据。有了当地数据,就能够幸免数据正在扫瞄器战办...
  • woxingx
  • woxingx
  • 2016-11-30 15:59:31
  • 216

Cookie、session和localStorage、以及sessionStorage之间的区别

一、Cookie、session和localStorage的区别 cookie的内容主要包括:名字、值、过期时间、路径和域。路径与域一起构成cookie的作用范围。若不设置时间,则表示这个c...
  • ruby_xc
  • ruby_xc
  • 2017-03-25 19:34:22
  • 7190

cookie ,session 和localStorage的区别详解

当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪录下来。当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留...
  • ljiechang
  • ljiechang
  • 2014-09-02 12:40:08
  • 9292

HTML5几种存储方式 localstorage sessionstorage application cache Web SQL IndexedDB

体情况 h5之前,存储主要是用cookies。cookies缺点有在请求头上带着数据,大小是4k之内。主Domain污染。 主要应用:购物车、客户登录 对于IE浏览器有UserDat...
  • wanglingxxx
  • wanglingxxx
  • 2016-09-28 09:38:26
  • 1612

浅谈session,cookie,sessionStorage,localStorage的区别及应用场景

浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟服务端进行数据交互。一、cookie和sessioncookie和session都是用来跟踪浏览器用户...
  • zgrkaka
  • zgrkaka
  • 2017-01-22 11:36:53
  • 3162

浏览器中cookie,session,localStorage的操作

cookie不能跨域,不能跨浏览器 1,设置cookie,多个cookie用;分隔 /*设置cookie,有效期30天*/ function setCookie (name , value) {...
  • guo273559625
  • guo273559625
  • 2017-02-03 10:56:13
  • 545

HTML5本地存储:SessionStorage, LocalStorage, Cookie

SessionStorage, LocalStorage, Cookie这三者都可以被用来在浏览器端存储数据,而且都是字符串类型的键值对!。 区别在于前两者属于WebStorage,创建它们的目的便是...
  • yangjvn
  • yangjvn
  • 2015-09-04 12:33:24
  • 3071

session与cookie的区别?cookies,sessionStorage 和localStorage的区别?

cookie 和session 的区别: 1、cookie数据存放在客户的浏览器上,session数据放在服务器上。 2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOK...
  • webxiaoma
  • webxiaoma
  • 2016-12-01 11:06:21
  • 1322

H5开发:详说 Cookie, LocalStorage 与 SessionStorage

基本概念 Cookie Cookie 是小甜饼的意思。顾名思义,cookie 确实非常小,它的大小限制为4KB左右,是网景公司的前雇员 Lou Montulli 在1993年3月的发明。它...
  • Generon
  • Generon
  • 2017-05-18 10:14:56
  • 526

浅谈cookie、sessionStorage 和 localStorage

cookie和session都是用来跟踪浏览器用户身份的会话方式。 cookie与session的区别:cookie数据保存在客户端,session数据保存在服务器端。 如果web服务器端使用的是se...
  • zhouziyu2011
  • zhouziyu2011
  • 2017-02-28 13:25:08
  • 1542
    个人资料
    持之以恒
    等级:
    访问量: 6万+
    积分: 6241
    排名: 4958
    友情链接
    最新评论