保存位置:浏览器端,存储内容只接受String类型浏览器
若是设置过时时间,保存在硬盘中,关闭浏览器后cookie数据仍然存在,直到过时事件结束才消失。安全
若是未设置过时时间,保存在内存中,生命周期随浏览器的关系而结束,这种cookie简称为会话cookie。服务器
cookie原理:cookie
1)判断用户是否登陆过网站,以便于下次登陆时可以实现自动登陆(或者记住密码);session
2)保存上次查看的页;网站
3)浏览次数。cdn
cookie缺点:blog
1)存储小:单个cookie保存的数据不能超过4kb;生命周期
2)安全性低:别人能够分析存放在本地上的cookie并进行cookie欺骗;事件
3)每一次请求都会带上cookie传给服务器,体验很差,浪费宽带;
4)用户能够操做cookie,使功能受限。
保存位置:服务端,支持任何类型的存储内容
session与cookie关系:
session是基于cookie实现的,session必须将sessionID经过cookie发送到客户端;
第一次建立session,服务端会在http协议中告诉浏览器端,须要在cookie里面记录一个sessionID,之后每次请求把这个会话ID发送到服务器,据此来识别不一样客户端。
应用场景
1)网上商城的购物车;
2)保存用户登陆信息;
3)将某些数据放入session中,供同一用户的不一样页面使用;
4)防止用户非法登陆。
session缺点
1)session保存的东西越多,就越占用服务器内存,对于用户在线人数较多的网站,会加大服务器的压力;
2)依赖cookie,若是禁用cookie,则要使用URL重写;
3)过分使用session变量会致使代码不可读并且很差维护。
保存位置:浏览器端,只能存储字符串类型。
生命周期:
仅在当前会话下有效,是在同源的窗口中始终存在的数据。只要这个浏览器没有关闭,即便刷新页面或者进入同源另外一个页面,数据依然存在。浏览器窗口关闭后数据被销毁。
应用场景:敏感帐号一次性登陆。
储存大小:浏览器对sessionStorage的大小限制是5MB。
保存位置:浏览器端,只能存储字符串类型。
生命周期:
localStorage的生命周期是永久的,关闭页面或者浏览器以后localStorage中的数据也不会消失。
应用场景:长期登陆、判断用户是否已登陆、适合长期保存在本地的数据。
储存大小:浏览器对localStorage的大小限制是5MB。