为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 网络编程 正文

localStorage、sessionStorage和cookie三者的区别你真的知道吗?

三叶资源网 2022-09-26 20:18:50 网络编程 230 ℃ 0 评论

一、localStorage与sessionStorage

1、webstorage是本地存储,存储在客户端,包括localStorage和sessionStorage。

2、localStorage 的生命周期是永久的,关闭页面或浏览器之后 localStorage 中的数据也不会消失。除非主动删除数据,否则数据永远不会消失,存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信

sessionStorage 的生命周期是仅在当前会话下有效。sessionStorage 引入了一个“浏览器窗口”的概念,sessionStorage 是在同源的窗口中始终存在的数据。只要这个浏览器窗口没有关闭,即使刷新页面或者进入同源另一个页面, 数据依然存在。但是 sessionStorage 在关闭了浏览器窗口后就会被销毁。同时独立的打开同一个窗口同一个页面,sessionStorage 也是不一样的。

存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。原生接口可以接受,亦可再次封装来对Object和Array有更好的支持

3、作用域的不同:

不同浏览器无法共享localStorage或sessionStorage中的信息。

相同浏览器的不同页面间可以共享相同 localStorage的信息页面属于相同域名和端口),但是不同页面或标签页间无法共享sessionStorage的信息。

这里需要注意的是,页面及标签页仅指顶级窗口,如果一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是可以共享sessionStorage的。

4、存储大小:localStorage和sessionStorage的存储数据大小一般都是:5MB。

5、存储位置:localStorage和sessionStorage都保存在客户端,不与服务器进行交互通信。

6、存储内容类型:localStorage和sessionStorage只能存储字符串类型,对于复杂的对象可以使用ECMAScript提供的JSON对象的stringify和parse来处理。

7、获取方式:localStorage:window.localStorage;sessionStorage:window.sessionStorage。

8、应用场景:localStoragese:常用于长期登录(+判断用户是否已登录),适合长期保存在本地的数据,而sessionStorage:敏感账号一次性登录。

9、用法:

(1)首先要判断浏览器是否支持 localStorage / sessionStorage,比如判断 localStorage。

if (window.localStorage) {
  console.log('浏览支持 localStorage');
} else {
  console.log('浏览暂不支持 localStorage');
}

(2)localStorage 和 sessionStorage 都具有相同的操作方法,例如 setItem()、getItem() 和 removeItem() 等。

1)储存数据:

用途: 将 value 存储到 key 字段。

用法: setItem( key, value)。

sessionStorage.setItem('key', 'value');

localStorage.setItem('key', 'value');

注意:如果需要储存数组或对象的话, 可以用JSON格式传入。

2)取出数据:

用途: 获取指定 key 本地存储的值。

用法: getItem(key)。

sessionStorage.getItem('key');

localStorage.getItem('key');

3)修改数据:

用途: 修改指定 key 本地存储的值。

用法: setItem(key)。

sessionStorage.setItem('key', 'newVal');

localStorage.setItem('key', 'newVal');

4)删除数据:

用途: 删除指定 key 本地存储的值。

用法: removeItem(key)。

sessionStorage.removeItem('key');

localStorage.removeItem('key');

5)清除数据:

用途: 清除所有本地存储的数据。

用法: clear()。

sessionStorage.clear();

localStorage.clear();


二、cookie

1、HTTP Cookie简称cookie,在HTTP请求发送Set-Cookie HTTP头作为响应的一部分。通过name=value的形式存储。

2、cookie的构成:

(1)名称:name(不区分大小写,但最好认为它是区分的);

(2)值:value(通过URL编码:encodeURIComponent);

(3)域;

(4)路径;

(5)失效时间:一般默认是浏览器关闭失效,可以自己设置失效时间;

(6)安全标志:设置安全标志后只有SSL连接的时候才发送到服务器。

3、cookie的作用:主要用于保存登录信息。

4、生命期为只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。 存放数据大小为4K左右 。有个数限制(各浏览器不同),一般不能超过20个与服务器端通信:每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题。

5、cookie的优点:具有极高的扩展性和可用性

通过良好的编程,控制保存在cookie中的session对象的大小;

通过加密和安全传输技术,减少cookie被破解的可能性;

只有在cookie中存放不敏感的数据,即使被盗取也不会有很大的损失;

控制cookie的生命期,使之不会永远有效。这样的话偷盗者很可能拿到的

6、cookie的缺点:

cookie的长度和数量的限制:每个domain最多只能有20条cookie,每个cookie长度不能超过4KB,否则会被截掉。

安全性问题:如果cookie被人拦掉了,那个人就可以获取到所有session信息。加密的话也不起什么作用。

有些状态不可能保存在客户端:例如,为了防止重复提交表单,我们需要在服务端保存一个计数器。若把计数器保存在客户端,则起不到什么作用。

7、用法:

储存数据:

window.document.cookie = 'key=val'。

取出数据:

document.cookie。

例如:

(1)设置 Cookie

setCookie(key, val, days) {
  let date = new Date(); // 获取时间
  date.setTime(date.getTime() + 24 * 60 * 60 * 1000 * days);
  // 字符串拼接 Cookie
  window.document.cookie = `${key}=${val};path=/;expires=${date.toGMTString()};`;
}


(2)获取 Cookie

getCookie() { 
  let cookie = document.cookie.split(';');
}


(3)清除Cookie

clearCookie() { 
  this.setCookie('', '', -1);
}

Tags:

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
httpwacth识别创建刺激战场辅助京医通快手Websocket服务器哈罗单车英魂之刃模拟器中控登录scrcpy投屏源码注释动态支持库图片上传调用AI取启动时间CMD输出HookQQ头像采集
最新评论