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

发布于:2021-12-01 14:15:16

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


目录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标识

相关推荐

最新更新

猜你喜欢