cookie,localStorage,sessionStorage的区别

一、概念

  1. Cookie

    • 什么是Cookie —— Cookie 是一些数据, 存储于你电脑上的文本文件中。
  2. localStorage
    • 什么是 localStorage —— localStorage 是指将信息数据存储在客户端本地的硬件上,即使浏览器被关闭了,信息数据同样存在
  3. sessionStorage
    • 什么是 sessionStorage —— sessionStorage 是指将信息数据存储在session对象中,所以当浏览器关闭后,sessionStorage也随之清空

二、如何使用(一些API和常见用法)

  1. Cookie(参考菜鸟教程https://www.runoob.com/js/js-cookies.html

    • 创建Cookie

      document.cookie = ‘username=Doe‘;    // 基本设置
      
      document.cookie = ‘username=Doe; expires=Thu, 18 Dec 2043 12:00:00 GMT‘;     // 基本设置 + 过期时间(默认情况下cookie在浏览器关闭时删除)
    • 读取Cookie

      var x = document.cookie;        // 读取cookie
    • 修改Cookie

      // 给key重新赋值即可,例如原来的username=Doe,修改为John
      document.cookie = ‘username=John‘;
    • 获取Cookie值得函数

      function getCookie(cname){
          var name = cname + ‘=‘;
          var ca = document.cookie.split(‘;‘);
          for(var i = 0; i < ca.length; i++){
              var c = ca[i].trim();    // trim()用于除去前后空格
              if(c.indexOf(name) == 0) return c.substring(name.length, c.length);
           }
           return ‘‘;
      }
    • 检测Cookie是否存在

      // 检测cookie中是否有我们想要得数据,可以使用getCookie函数(上面那个↑
      
      function checkCookie() {
          var username = getCookie(‘username‘);
          if(username == ‘‘){
              alert(‘welcome‘);
          }
          else {
              username = prompt(‘Please enter your name:‘, ‘‘);
              if(username != ‘‘ && username != null){
                  setCookie(‘username‘, username, 365);
              }
          }
      }
      
      // 设置cookie
      function setCookie(key, value, time){
          var d = new Date();
          d.setTime(d.getTime() + (time * 24 * 60 * 60 * 1000));
          var expires = ‘expires=‘ + d.toGMTString();
           document.cookie = key + ‘=‘ + value + ";" + expires;
      }
  2. localStorage
    • 新建localStorage

      localStorage.setItem(key, value);
    • 查询localStorage里的value

      localStorage.getItem(key);
    • 清除某一个localStorage

      localStorage.removeItem(key);
    • 清除所有得localStorage

      localStorage.clear();
    • 获取localStorage里得所有key和值

      function getAll() {
          var valueArr = [];   var keyArr = [];
          for(var i = 0; i < localStorage.length; i++){
              var key = localStorage.getKey(i);        keyArr.push(key);
              valueArr.push(localStorage.getItem(key);
          }
          return newArr;
      }
  3. sessionStorage
    • API与localStorage一致

三、cookie、sessionStorage、localStorage 的区别

  1. 大小

    • cookie: 4K左右,很小很小;
    • sessionStorage 和 localStorage:5M;
  2. 有效期
    • cookie:使用expire设置过期时间
    • sessionStorage:浏览器关闭则清空,生命周期为仅在当前对话下
    • localStorage:不手动清空则不会清除,生命周期为永远
  3. 是否会将数据发给服务器
    • cookie:每次访问都会传送cookie给服务器,即使是不需要的时候,这样会浪费带宽
    • sessionStorage 和 localStorage:不传送

---------------------------------------------------------------------------------------------------------------分割线---------------------------------------------------------------------------------------------------------------

多说一点点 T^T

cookie 如何防范XSS攻击

XSS 是指攻击者在返回的HTML中嵌入JS脚本,为减轻这些攻击,需要在HTTP头部配上set-cookie:

httponly: 这个属性可以防止XSS,因为他会禁止JavaScript脚本来访问cookie

secure: 这个属性告诉浏览器仅在请求为https的时候发送cookie

挖个坑,详细的cookie如何防范xss(2019/9/12)

原文地址:https://www.cnblogs.com/pingzi-wq/p/11509746.html

时间: 2024-08-10 12:04:51

cookie,localStorage,sessionStorage的区别的相关文章

cookie,localStorage,sessionStorage的特点与区别。

1.cookie Cookie实际上是一小段的文本信息.客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie.客户端浏览器会把Cookie保存起来.当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器.服务器检查该Cookie,以此来辨认用户状态.服务器还可以根据需要修改Cookie的内容.由于cookie的安全性不高,所以一般不把密码保存在cookie中: 2.localStorage ①相当于一个5M大小的前端数据库

解读cookie,localstorage,sessionstorage用法与区别2(解读cookie)

说到本地存储 HTML5 提供了两种在客户端存储数据的新方法: localStorage - 永久存储(可以手动删除数据) sessionStorage - session临时回话,从页面打开到页面关闭的时间段 窗口的临时存储,页面关闭,本地存储消失 其实前景和作用和cookie也是相同甚至从cookie演变而来,用一张图来表示服务商对本地存储的探索. 由图就可以看出本地存储的和cookie的区别,存储大且无插件. 这时也许就该思考H5的最大问题兼容性,这是本地存储支持情况图. 检测: if(w

cookie/ localStorage /sessionStorage区别

/** localStorage** *///window.localStorage 获取//window.sessionStorage 获取//document.cookie 获取 // 设置cookie document.cookie = 'aaa= 12';// cookie 大小限制 最多5kb 而且也占用带宽,因为会把cookie中的内容全部发给后台// localStorage 容量较大: 而且不会发给后台,不占用带宽// sessionStorage 再关闭页面时 就会清空 //

解读cookie,localstorage,sessionstorage用法与区别

cookie cookie概念 cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie.你可以使用 JavaScript 来创建和取回 cookie 的值. 为什么提出cookie? 由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份.怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证.这样服务器就能从通行证上确认客户身份了.这就是Cookie的工作原理. 我的理解 cookie为一小段文

封装cookie localStorage sessionStorage

var cookie = function(name, value, options) { if (typeof value !== 'undefined') { options = options || {}; if (value === null) { value = ''; options = $.extend({}, options); options.expires = -1; } var expires = ''; if (options.expires && (typeof

Cookie, LocalStorage 与 SessionStorage

Cookie, LocalStorage 与 SessionStorage相同点 都是储存在用户本地的数据. 意义在于避免数据在浏览器和服务器间不必要地来回传递. 三者的特点     同属于html5中的Web Storage 特性 Cookie localStorage sessionStorage 数据的生命期 可设置失效时间,默认是关闭浏览器后失效 除非被清除,否则永久保存 仅在当前会话下有效,关闭浏览器后被清除 存放数据大小 4K/个文件*最多20个 >5MB/站点 >5MB/站点 与

Cookie, LocalStorage 与 SessionStorage说明

 一.Cookie    Cookie 大小限制为4KB左右,不适合大量数据的存储.因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高.它的主要用途有保存登录信息,比如你登录某个网站市场可以看到"记住密码",这通常就是通过在 Cookie 中存入一段辨别用户身份的数据来实现的. HttpCookie cookie = new HttpCookie("MyCookieName", "string value"); Re

cookie localStorage与sessionStorage的使用及区别

cookie是储存在用户本地终端上的数据,意思就是能把用户的一些文字信息储存下来,但是cookie的储存空间特别小,一个浏览器能创建的 Cookie 数量最多为 300 个,并且每个不能超过 4KB,每个 Web 站点能设置的 Cookie 总数不能超过 20 个,因此现在越来越少的人使用cookie了,下面讲解一下cookie的用法吧,在使用cookie的时候我们需要先设置cookie p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px C

cookie、session、localStorage、sessionStorage的区别

cookie的机制 cookie是存储在用户本地终端上的数据.有时也用cookies,指某些网站为了辨别用户身份,进行session跟踪而存储在本地终端上的数据,通常经过加密. Cookie是服务器发给客户端的特殊信息,cookie是以文本的方式保存在客户端,每次请求一个新的页面的时候cookie都会被发送过去. cookie的内容主要包括:名字.值.过期时间.路径和域.路径与域一起构成cookie的作用范围.若不设置时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cook