Cookie和Session
Cookie 是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。Cookie 主要用于以下三个方面:
- 会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)
- 个性化设置(如用户自定义设置、主题等)
- 浏览器行为跟踪(如跟踪分析用户行为等)
cookie存在的问题:用户可以随意篡改cookie,容易造成信息泄露。
于是我们选择session,一般来说,session是基于cookie来实现的。
用户登录网站成功后,服务器会将一段随机数即sessionID以cookie的形式发送给浏览器,下次用户访问相同域名的网页时,会带上这个cookie,服务器读取sessionID,判断是否一致。
session就是服务器上的哈希表,以键值对的形式储存信息,键就是sessionID,值就是用户的信息
由于放在cookie上的是sessionID,是一个有随机函数生成的随机字符串,而不是用户的信息,是一种映射关系,所以安全性更高
Cookie和LocalStorage
简单来说,用户每次发送请求都需要带上cookie,是符合http标准的;
但localStorage跟http无关,发送请求不会带上localStorage的值,不用占据多余的带宽
localStorage是浏览器上的哈希表,存在于C盘里的一个文件里,一般用来记录不太敏感的信息,比如有没有提示过用户
一般每个域名localStorage最大存储量为5M左右,而cookie一般4KB左右
一般localStorage有效时间为永久,除非用户自己主动清理缓存;而cookie默认是在用户关闭页面就失效,但一般它由后台设置过期时间。
LocalStorage 和 SessionStorage
区别很小,主要是有效时间不同
sessionStorage在用户关闭页面即会话结束后就失效,而localStorage则是永久有效除非用户自己清理缓存。
网友评论