cookie、localStorage和sessionStorage详解

这篇具有很好参考价值的文章主要介绍了cookie、localStorage和sessionStorage详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 

目录

一、cookie

二、Web storage

1、localStorage

2、sessionStorage的使用

 3、复杂数据类型储存

Web Storage带来的好处: 

三、sessionStorage、localStorage和cookie的区别 


一、cookie

cookie是客户端与服务器端进行会话使用的一个能够在浏览器本地化存储的技术。简言之,cookie是服务器端发给客户端的文本文件,但只能储存4kb的数据;目的是用于辨别用户身份,记录跟踪购物车的商品信息(如数量)、记录用户访问次数等。

cookie的内容主要包括:名字name,值value,过期时间expires,路径path和域domain。路径和域一起构成cookie的作用范围。一般cookie储存在内存里,若设置了过期时间则储存在硬盘里,浏览器页面关闭也不会失效,直到设置的过期时间后才失效。若不设置cookie的过期时间,则有效期为浏览器窗口的会话期间,关闭浏览器窗口就失效。

原理:

客户端请求服务器时,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。而客户端浏览器会把Cookie保存起来。当浏览器再请求服务器时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器通过检查该Cookie来获取用户状态。

设置cookie: document.cookie = "key=value;";

setCookie(name,value,expiredays){//设置时间为天为过期单位
      var exdate=new Date();
      exdate.setDate(exdate.getDate()+expiredays);
      document.cookie=name + '=' + escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
    },

获取cookie

getCookie(name){
      var start = document.cookie.indexOf(name+'=')
      var end = document.cookie.indexOf(';',start)
      if(end=-1){
        end = document.cookie.length
      }
      return unescape(document.cookie.substring(start,end))
    }

二、Web storage

web Storeage的概念和cookie很相似,区别在于web Storage更够储存各多的数据,cookie的大小是受限的,并且每次请求一个新的页面的时候都会被发送过去,无形中浪费了带宽,另外cookie还需要指定作用域,不可跨越调用。

HTML5增加了两个储存方式:localStorage和sessionStorage

1、localStorage

localStorage的生命周期是永久,除非手动去清除,否则永远都存在,他的储存大小是5MB,仅在客户端浏览器上储存,不参与服务器的通信。

localStorage的使用方法

      //设置localStorage保存到本地,第一个为变量名,第二个是值
      localStorage.setItem('Author', 'Jane')
      // 获取数据
      localStorage.getItem('Author')
      // 删除保存的数据
      localStorage.removeItem('Author')
      // 清除所有保存的数据
      localStorage.clear()

  通常以键值对的方式储存,通常储存为字符串

cookie、localStorage和sessionStorage详解

2、sessionStorage的使用

 sessionStorage顾名思义,是在当前会话下有效,引入了一个“浏览器窗口的概念”,sessionStorage是在同源的同窗口中,始终存在的数据,只要浏览器不关闭,即使是刷新或者进入同源的另一个页面,数据仍在。同时打开“独立”的窗口,即使是同一个页面,sessionStorage的对象也是不同的。关闭窗口后sessionStorage就会被销毁。

 sessionStorage的使用方法

      // 设置sessionStorage保存到本地,第一个为变量名,第二个是值
      sessionStorage.setItem('sessionName', 'John')
      // 获取数据
      sessionStorage.getItem('sessionName')
      // 删除保存的数据
      sessionStorage.removeItem('sessionName')
      // 清除所有保存的数据
      sessionStorage.clear()

比如设置sessionStorage的sessionName为John

cookie、localStorage和sessionStorage详解

 点击按钮change方法触发,将sessionName改为dell,

 change () {
      sessionStorage.setItem('sessionName', 'dell')
      this.sessionName = sessionStorage.getItem('sessionName')
    }

 cookie、localStorage和sessionStorage详解

 再打开独立的窗口,会发现sessionStorage的数值仍是初始值,说明不同窗口的sessionStorege的对象是不同的,而localStorage的值是同步改变的。

cookie、localStorage和sessionStorage详解

 3、复杂数据类型储存

因为上面说过,webStorage是以字符串的格式储存的,所以不能直接储存对象和数组类型,需要先转换一下格式再进行储存。

 使用JSON.stringify()将对象转换成字符串

解析的时候,再使用JSON.parse()转换回去使用。

Web Storage带来的好处: 


1、减少网络流量:一旦数据保存在本地之后,就可以避免再向服务器请求数据,因此减少不必要的数据请求,减少数

据在浏览器和服务器间不必要的来回传递 
2、快速显示数据:性能好,从本地读数据比通过网络从服务器上获得数据快得多,本地数据可以及时获得,再加上网

页本身也可以有缓存,因此整个页面和数据都在本地的话,可以立即显示 
3、临时存储:很多时候数据只需要在用户浏览一组页面期间使用,关闭窗口后数据就可以丢弃了,这种情况使用sessionStorage非常方便

三、sessionStorage、localStorage和cookie的区别 

共同点:都是保存在浏览器端、且同源的 
区别: 
1、cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递,而sessionStorage和localStorage不会自动把数据发送给服务器,仅在本地保存。cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下 
2、存储大小限制也不同,cookie数据不能超过4K,同时因为每次http请求都会携带cookie、所以cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大 
3、数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭之前有效;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie:只在设置的cookie过期时间之前有效,即使窗口关闭或浏览器关闭 
4、作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localstorage在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的 
5、web Storage支持事件通知机制,可以将数据更新的通知发送给监听者 
6、web Storage的api接口使用更方便文章来源地址https://www.toymoban.com/news/detail-435394.html

到了这里,关于cookie、localStorage和sessionStorage详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 浏览器的存储,cookie(httponly)、localStorage、sessionStorage、indexed对比

    浏览器提供了多种客户端存储机制,每种机制都有其特定的用途、特性和限制。以下是对 cookie 、 localStorage 、 sessionStorage 和 IndexedDB 的对比: 1. Cookie 存储大小 : 通常限制为4KB。 生命周期 : 可以设置过期时间。如果没有设置,它的生命周期将与会话持续相同,即关闭浏览器后

    2024年02月10日
    浏览(42)
  • 前端存储不要局限于cookies、Web Storage(sessionStorage、localStorage)还有它!

    前端本地化存储算是一个老生常谈的话题了,我们对于 cookies、Web Storage(sessionStorage、localStorage)的使用已经非常熟悉,这段时间公司提出了一个需求,业务员在移动端作业时需要有一个暂存功能,暂时存储填写的数据,我分析后数据量还比较大,前后查过各种资料。现在分

    2024年02月19日
    浏览(41)
  • 利用HTML5存储对象:localStorage和sessionStorage解析

    前端朋友们,你是否曾为如何在用户的浏览器中存储数据而感到困扰?你是否想过,如果可以在用户的浏览器中存储一些数据,那么我们的应用程序将会变得多么强大?如果你的答案是肯定的,那么本文将为你解锁一种新的能力——使用HTML5的localStorage和sessionStorage。 HTML5引入

    2024年02月05日
    浏览(35)
  • 原生JavaScript实现本地存储(localStorage)和会话存储(sessionStorage)

    目录 一、简单介绍 二、localStorage本地存储 三、sessionStorage会话存储 本地存储和会话存储的目的,是将所输入的文件存入到浏览器中,在需要的时候,直接调用,但是本地存储和会话存储有着一定的区别,本地存储,在不主动删除的情况下,会一直保留在浏览器中,会话存储是

    2023年04月08日
    浏览(43)
  • Vue中如何进行状态持久化(LocalStorage、SessionStorage)

    在Vue应用中,通常需要将一些状态进行持久化,以便在用户关闭浏览器或刷新页面后,仍能保留之前的状态。常见的持久化方式包括 LocalStorage 和 SessionStorage 。本文将介绍如何使用这两种方式来实现状态的持久化。 LocalStorage 是HTML5中引入的一种持久化方式,它可以将数据存储

    2024年02月09日
    浏览(50)
  • 【温故而知新】HTML5存储localStorage/sessionStorage

    HTML5是HTML的最新版本,它引入了许多新的元素和功能,以适应现代网页开发的需求。以下是HTML5的一些主要特点: 新增语义元素 :HTML5引入了许多新的语义元素,如 header、footer、article、section 等,这些元素有助于提高网页的结构化和可访问性。 媒体支持 :HTML5引入了 audio 和

    2024年01月18日
    浏览(56)
  • sessionStorage和localStorage 的区别和使用,具体与 session 区分

    sessionStorage和localStorage是浏览器提供的Web Storage机制,用于存储在客户端(浏览器)本地的数据。它们之间的区别主要体现在以下几个方面: 1. 数据作用域: - sessionStorage:存储在sessionStorage中的数据仅在当 前会话期间有效 ,即在浏览器同一个窗口或标签页打开的时间范围内

    2024年02月09日
    浏览(35)
  • cookie和localstorage在iframe中的应用

    背景: 现有项目中有一个用户中心系统,里面用iframe嵌入不同项目的页面,多个项目公用一个token 解决方案: 子页面通过url参数的方式传递token, 在url拿到token之后,刚开始将token存入localstorage中,但localstorage是永久保存,在浏览器关掉之后,再重新打开页面,只要token没有

    2024年02月08日
    浏览(33)
  • 鸿蒙Harmony--LocalStorage--页面级UI状态存储详解

    走的太急疼的是脚,逼的太紧累的是心,很多时候,慢一点也没关系,多给自己一些耐心和等待,保持热爱,当下即是未来,生活自有安排!  目录 一,定义 二,@LocalStorageProp定义 三,@LocalStorageProp装饰器使用规则说明  四,@LocalStorageProp变量的传递/访问规则说明  五,@Loc

    2024年01月20日
    浏览(43)
  • 一文详解Cookie以及Selenium自动获取Cookie

    以后数据获取途径以及数据资产绝对会是未来核心要素生产工具和资源之一,每个大模型都离不开更加精细化数据的二次喂养训练。不过现在来看收集大量数据的方法还是有很多途径的,有些垂直领域的专业数据是很难获取得到的,靠人力去搜寻相当费时费力,而且处理起来

    2024年02月04日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包