自学内容网 自学内容网

聊一下cookie,session,token的区别

cookie

cookie是存放在客户端的,主要用于会话管理和用户数据保存;cookie通过http报文的请求头部分发送给服务器,服务器根据cookie就可以获取到里面携带的session id(用于获取服务器中对应的session数据),因为http是无状态协议,我们通常就是通过cookie去维护状态的

cookie是在客户端第一次访问到服务器时,服务器生成并返回给客户端的

cookie也分为会话cookie和持久cookie,会话cookie存放在内存中,浏览器关闭时自动删除;持久cookie则存放在硬盘,有一个过期时间,在时间内cookie有效

优点:简单易用

缺点:大小有限,存放数据少;容易被人为篡改,安全性低

session 

session和cookie不同,session存放在服务器中,session用于记录客户端的信息还有用户的状态,我们通过cookie的session id去访问服务器中的session以获取用户的状态

优点:安全性高,不易被修改;存放数据量大

缺点:资源消耗

token

token,拿jwt来说,就是一个字符串,由头部,负载,签名三个部分组成

token主要用于用户的登录验证,token由服务器生成,保存在客户端,在用户首次登录成功时返回,token可以存放在cookie中或者本地存储中,一般存放在local storage,通常会使用一些加密算法对token进行一些保护,例如SHA256

token在一定程度解决了cookie安全性低的问题,不会出现CSRF攻击(跨站请求伪造)的问题,对方无法直接获取到token

优点:安全性高,单点登录友好,适用于移动端

缺点:存在token过期的问题


原文地址:https://blog.csdn.net/vh_127/article/details/142499704

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!