cookie、session、sessionStorage、localStorage的区别和联系
一、几个概念
·cookie、session,会话跟踪技术,H4的存储机制
·localStorage、sessionStorage是web Storage,H5的本地存储机制。
·web Storage是针对H4中cookie存储机制的改善,主要提供cookie之外的存储会话数据的路径,跨会话、持久化存储大量数据。
二、cookie、session区别
·作用及存储位置:它们都用户记录客户状态,不过cookie保存在客户端,session保存在服务器端,且session依赖cookie,因为sessionID存在cookie中。
·存储内容及大小:cookie以文本的形式,只能保存字符串类型,且大小为4kb左右;session通过类似hashtable的数据结构保存,能支持任意类型的对象,大小没有限制。
·区分路径及跨域问题:cookie设置了路径参数,则同一网站中不同路径下无法互相访问cookie,cookie通过设置后缀属性即可跨域名访问;session不能区分路径,同一用户访问期间,所有网页都可以互相访问session,session仅能在所在域名内生效。
·安全性:session安全性大于cookie,因为:
1.sessionID是加密的;
2.sessionID存储在cookie中,需要攻破cookie后才能拿到;
3.sessionID需要在用户登录后或者启动session_start才会出现,所以攻破cookie也不一定能拿到sessionID;
4.第二次启动session_start后,前一次的sessionID会失效,session过期后,sessionID也会失效
所以攻击者必须在短时间内攻破加密的sessionID,这很困难。
三、cookie、sessionStorage、localStorage区别
·cookie、sessionStorage、localStorage都存储在浏览器端,且同源。
·写入方式及大小:cookie由服务端写入,cookie大小约为4KB;sessionStorage、localStorage则由客户端写入,大小约为5MB。
·生命周期:cookie在写入时就已由服务端设定,sessionStorage的生命周期持续到页面关闭,localStorage的生命周期一直存在,直至手动清除;
·请求时携带:cookie一样每次请求都会传送到服务器,Web Storage不会传送到服务器,存储在本地的数据可以直接获取,所以安全性相对于cookie来说比较高一些。
·作用域:sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localstorage在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的
四、应用场景
由于以上的区别,cookie一般运用于存储登录验证信息的ID或token,sessionStorage用于检测用户是否刷新进入页面,localStorage用于存储不易变动的信息,减轻服务器压力。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律