session,cookie,sessionStorage,localStorage的区别~~~前端面试

 在浏览器中存储当前用户专用数据[购物车]
   注意:在客户端存储数据最基要求,安全性要求低数可以保存浏览器
   密码:安全性高数据     购物车:安全性低数据
   客户端存储数据
   (1)Cookie        浏览器兼容性好,不能超4KB,操作复杂
   (2)Flash         依赖Flash播放器
   (3)Web Storage  不能超8MB,操作简单
   (4)IndexDB      存储量大,还不标准

Session:会话(操作过程)浏览器从打开某个网站的第一个页面开始
(会话开始)中间可能打开多个网页(会话中)直到关闭浏览器(会话结束)
整个过程称为:"浏览器与web 服务器的一次会话"
 webstore技术中浏览器为用户提供二个对象
   -sessionStorage
    此对象仅供此次会话所有页面共同使用,一旦关闭浏览器则
    数据消失
    (1)获取数据 var value = sessionStorage.getItem(key)
                var value = sessionStorage[key];
    (2)修改数据 sessionStorage.setItem(key,value)
                sessionStorage[key] = value;
    (3)清除数据 sessionStorage.clear();
                sessionStorage.removeItem(key)
    (4)其它     sessionStorage.length  数据个数
               var key = sessionStorage.key(i);

   练习:使用sessionStorage保存用户名
       创建index.html 右上角显示 "请登录" 超链接
       创建login.html 输入用户名 提交按钮
       用户点击提交按钮 提示:登录成功 3s后跳转首页
       setTimeout()+location.href

   -localStorage
    此对象供此次会话以及后续会话使用,即使浏览器关闭数据存在

cookie&&session

区别:

1、保持状态:cookie保存在浏览器端,session保存在服务器端

2、使用方式:

(1)cookie机制:如果不在浏览器中设置过期时间,cookie被保存在内存中,生命周期随浏览器的关闭而结束,这种cookie简称会话cookie。如果在浏览器中设置了cookie的过期时间,cookie被保存在硬盘中,关闭浏览器后,cookie数据仍然存在,直到过期时间结束才消失。

     Cookie是服务器发给客户端的特殊信息

(2)session机制:服务器端内存中保存用户私密信息的存储空间,在首次请求服务器时,服务器为当前客户端创建一个专门的内存存储空间,成为session,并分配随机的session_id,返回给客户端保存在cookie中,每次客户端请求服务器时,都自动携带cookie和session_id到服务器,可打开session,取出session中保存的数据使用如果客户端长时间未请求服务器,服务器自动删除该客户端对应的session。

关闭浏览器,会导致cookie中的session_id丢失,再次打开浏览器访问服务器时,服务器会分配新的session和session_id,原session即使未释放,也无法访问.

HTML5的WebStorage提供了两种API:localStorage(本地存储)和sessionStorage(会话存储)。

生命周期localStorage:localStorage的生命周期是永久的,关闭页面或浏览器之后localStorage中的数据也不会消失。localStorage除非主动删除数据,否则数据永远不会消失。

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

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

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

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

 

posted @ 2018-11-08 09:24  lianer3588  阅读(291)  评论(0编辑  收藏  举报