缓存CookiesessionlocalStorage的区别

Posted NT.Wang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了缓存CookiesessionlocalStorage的区别相关的知识,希望对你有一定的参考价值。

 

cookie
  Cookie就是服务器暂存放在你计算机上的一笔资料,好让服务器用来辨认你的计算机。当你在浏览网站的时候,Web服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都记录下来。当下次你再光临同一个网站,Web服务器会先看看有没有它上次留下的Cookie资料,有的话,就会依据Cookie里的内容来判断使用者,送出特定的网页内容给你
 
下图是父级Cookie和子级Cookie 之间的关系
  |-setCookie.html     设置一个cookie
  |-getCookie.html     获取setCookie的cookie - √
         读取test.set.html的cookie -×
    |- test-get.html   读取setCookie的cookie - √
         读取test.set.html - √
    |- test-set.html 设置一个cookie
  同级能相互读取cookie
  子级能读取父级的cookie
  父级不能读取子级的cookie (把子级的cookie存在根目录就可以解决)
 
 Cookie的格式
  document.cookie = \'name=value;path=/;expires=\'+Odata; 
  cookie的特性
    1 必须放在服务器环境下,以域为单位
    2 不安全 能看到
    3 周期性
    4 非常珍贵 -4k
    5 不管看到的是什么,读取出来的都是字符串
    缺点:
       1. 浏览器一般只允许存放300个Cookie,
       2. 每个站点最多存放20个Cookie,
       3. 每次你请求一个新的页面的时候都会被发送过去,这样无形中浪费了带宽      
      ps:IE 提供了一种存储可以持久化用户数据uerDataIE5.0就开始支持。每个数据最多128K,每个域名下最多1M。
        这个持久化数据放在缓存中,如果缓存没有清理,那么会一直存在。
    优点:极高的扩展性 和可用性
      1. 可用控制cookie中的session对象的大小
      2. 通过加密觉安全传输技术(ssl),减少cookie被破解的可能性
      3. 只在cookie中存放不敏感数据,及时被盗也不会有重大损失
      4 .控制cookie的生命周期,让他不会永远有效,偷盗者很可能拿到的是一个过期的cookie
  必知两点:
    什么时候写入cookie
    什么时候读取cookie

 

ookie 和session 的区别:
  Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份
  什么时候用:
    1、session存在服务器。如果人多用cookie(比如会员登录),机密而且人少用session(比如管理员 登录后台)需要持久储存用cookie(cookie也可以非持久储存)
    2、cookie数据存放在客户的浏览器上,session数据放在服务器上。
    3、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗。考虑到安全应当使用session。
    4、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能。考虑到减轻服务器性能方面,应当使用COOKIE。
    5、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
 
localStorage
  在较高版本的浏览器中
  JS提供了sessionStorage和globalStorage 。
  在HTML5中提供了localStorage来取代globalStorage。
  HTML5中的Web Storage包括了两种存储方式:sessionStorage和localStorage。
   
  sessionStorage
  用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。
  因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储
 
  localStorage用于持久化本地存储,除非主动删除数据,否则数据是永远不会过期的
  大小也有5M。
  每次你请求一个新的页面的时候localStorage不会被发送过去。
 
  如有错误或者缺少的地方希望指出 谢谢!

以上是关于缓存CookiesessionlocalStorage的区别的主要内容,如果未能解决你的问题,请参考以下文章

什么是一级缓存,什么是二级缓存?

一级数据缓存,一级指令缓存和二级缓存有啥区别?

浏览器缓存和服务器缓存

Mybatis----缓存(一级缓存二级缓存)

MyBatis缓存看这一篇就够了(一级缓存+二级缓存+缓存失效+缓存配置+工作模式+测试)

day37 07-Hibernate二级缓存:查询缓存