Session跟Cookie的区别

  1. 存储的位置不同。session是基于cookie的,Session:服务端;Cookie:客户端。
  2. 存储的数据格式不同。Session:value为对象,Object任意类型;Cookie:二进制数据,ASCII字符串,如果我们存储一个对象,这个时候,就需要将对象转换为JSON。
  3. 存储的数据大小Session:受服务器内存控制;Cookie:一般来说,最大为4k。
  4. 生命周期不同Session:服务器端控制,默认是30分钟,注意,当用户关闭了浏览器,session并不会消失Cookie:客户端控制,其实是客户端的一个文件,分两种情况
    1,默认的是会话级的cookie,这种随着浏览器的关闭而消失,比如保存sessionId的cookie
    2,非会话级cookie,通过设置有效期来控制,比如这种“7天免登录”这种功能,就需要设置有效期,setMaxAge
    cookie的其他配置httpOnly=true:防止客户端的XSS攻击path="/" :访问路径domain="":设置cookie的域名
  5. cookie可以通过设置属性长期保存,而session是依赖于jsessionId的cookie,不能长期保存,会话级别。
  6. cookie在客户端,不占用服务器资源,适合并发量大的项目;session每个用户都会产生,占用服务端内存。
  7. cookie支持跨域访问,而session不支持。
  8. cookie跟session之间的联系
    http协议是一种无状态协议,服务器为了记住用户的状态,我们采用的是Session的机制。而Session机制背后的原理是,服务器会自动生成。
    会话级的cookie来保存session的标识,如下图所示:在这里插入图片描述
    nginx使用ip_hash负载均衡策略可以避免session失效
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值