面试题:理解session与cookie的本质

【推荐阅读】微服务还能火多久?>>> hot3.png

  • 目录
  • 1.前言
  • 2.出现缘由
  • 3.本质区别
  • 3.1存储位置及存储大小
  • 3.2存储时间问题
  • 3.3安全性
  • 4.总结

1.前言

作为web开发者,我们经常会使用到session和cookie,而且在面试的时候,面试官也会提到这两者的区别是什么?使用了那么多次,我希望从使用到本质,探讨一下它们的情况。

2.出现缘由

我们来思考这样一个场景,如果在网页开发中,有个变量我们需要长时间使用,可能在下次登录到这个页面的时候还能使用,那么它们的价值就体现出来了,他们能够保存我们所需要的数据而不需要经常性调用数据库去获取。

3.本质区别

3.1存储位置及存储大小

cookie以文本格式存储在浏览器上,存储量有限,只允许4KB;而session会话存储在服务端,可以无限量存储多个变量;所以session比cookie更安全。

3.2存储时间问题

session在网站关闭后就表示会话结束,因此无法做到长时间保存;而cookie保存在浏览器上,可以做到长时间的保存。

PS:但是需要注意的是,用户能够在浏览器上禁用和编辑cookie,因此一定不要将敏感信息存放,以防泄露;当cookie被浏览器禁用,可以通过URL参数形式传递cookie。

3.3安全性

除了3.2小节中谈到的用户可对cookie编辑和禁用外,还用一点就是session在与客户端连接时会生成对应的session-id,而cookie则没有,但是客户端获取Session需要通过Cookie传递SessionId,所以Cookie就是客户端与Session的中间桥梁。

4.总结

Cookie

  • 数据存储在浏览器端,文本形式,存储量最大4KB
  • 特点:方便与javascript交换数据,方便获取用户信息
  • 风险:浏览器可能会禁用cookie
  • 替换方案:URL参数

Session

  • 数据存储在服务器上,无限量存储多个变量
  • 特点:高效安全,不依赖浏览器环境,服务端为每个用户通过sessionID标识
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值