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用于存储不易变动的信息,减轻服务器压力。

 

posted @   新时代的搬砖人  阅读(217)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示