知识点------cookies,sessionStorage 和 localStorage 的区别

请描述一下 cookies,sessionStorage 和 localStorage 的区别?

cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。
  cookie数据始终在同源的http请求中携带(即使不需要),即会在浏览器和服务器间来回传递。
  sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。

  存储大小:
  	cookie数据大小不能超过4k。
  	sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。

  有期时间:
  	localStorage    存储持久数据,浏览器关闭后数据不丢失除非主动删除数据;
  	sessionStorage  数据在当前浏览器窗口关闭后自动删除。
  	cookie          设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭


番外=============================================
获取localStorage 中的值:JS下的操作方法
    特点:
    是对Cookie的优化
    没有时间限制的数据存储
    在隐私模式下不可读取
    大小限制在500万字符左右,各个浏览器不一致
    在所有同源窗口中都是共享的
    本质是在读写文件,数据多的话会比较卡(firefox会一次性将数据导入内存)
    不能被爬虫爬取,不要用它完全取代URL传参
    IE7及以下不支持外,其他标准浏览器都完全支持

    获取键值:localStorage.getItem(“key”)
    设置键值:localStorage.setItem(“key”,”value”)
    清除键值:localStorage.removeItem(“key”)
    清除所有键值:localStorage.clear()
    获取键值2:localStorage.keyName
    设置键值2:localStorage.keyName = “value”

==========================================
sessionStorage(会话cookie):
    特点:
    针对一个 session 的数据存储
    大小限制在5M左右,各个浏览器不一致
    仅在当前浏览器窗口关闭前有效(适合会话验证)
    不在不同的浏览器窗口中共享,即使是同一个页面
   
    存储数据:

    sessionStorage.setItem('testKey','这是一个测试的value值'); // 存入一个值
    sessionStorage['testKey'] = '这是一个测试的value值'
    
    读取数据:
    sessionStorage.getItem('testKey'); // => 返回testKey对应的值
    sessionStorage['testKey']; // => 这是一个测试的value值

cookie和session的区别: 
1、cookie数据存放在客户的浏览器上,session数据放在服务器上 
2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑*到安全应当使用session 
3、session会在一定时间内保存在服务器上,当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie 
4、单个cookie保存的数*据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie 
5、建议将登录信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中 
6、session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息 
7、session中保存的是对象,cookie中保存的是字符串 
8、session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到,而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的*

你可能感兴趣的:(知识点总结)