前言
作为web开发者,我们经常会使用到session和cookie,而且在面试的时候,面试官也会提到这两者的区别是什么?使用了那么多次,我希望从使用到本质,探讨一下它们的情况。
1. 它们为什么会出现?
我们来思考这样一个场景,如果在网页开发中,有个变量我们需要长时间使用,可能在下次登录到这个页面的时候还能使用,那么它们的价值就体现出来了,他们能够保存我们所需要的数据而不需要经常性调用数据库去获取。
2.它们的区别
(1)存储位置及存储大小
cookie以文本格式存储在浏览器上,存储量有限 , 只允许4KB ;而会话存储在服务端,可以无限量存储多个变量 因此,session 比cookie更安全 。
(2)存储时间问题
session在网站关闭后就表示会话结束,因此无法做到长时间保存;而cookie由于保存在浏览器上,则可以做到长时间的保存,但是需要注意的是,用户能够在浏览器上禁用和编辑cookie,因此一定不要将敏感信息存放,以防泄露;当cookie被浏览器禁用,可以通过URL参数形式传递cookie。
(3)安全性
除了(2)中谈到的用户可对cookie编辑和禁用外,还用一点就是session在与客户端连接时会生成对应的session-id,而cookie则没有,但是客户端获取Session需要通过Cookie里面的SessionId,Cookie就是客户端与Session的中间桥梁。
总结分析参考图:
前言
作为web开发者,我们经常会使用到session和cookie,而且在面试的时候,面试官也会提到这两者的区别是什么?使用了那么多次,我希望从使用到本质,探讨一下它们的情况。
1. 它们为什么会出现?
我们来思考这样一个场景,如果在网页开发中,有个变量我们需要长时间使用,可能在下次登录到这个页面的时候还能使用,那么它们的价值就体现出来了,他们能够保存我们所需要的数据而不需要经常性调用数据库去获取。
2.它们的区别
(1)存储位置及存储大小
cookie以文本格式存储在浏览器上,存储量有限 , 只允许4KB ;而会话存储在服务端,可以无限量存储多个变量 因此,session 比cookie更安全 。
(2)存储时间问题
session在网站关闭后就表示会话结束,因此无法做到长时间保存;而cookie由于保存在浏览器上,则可以做到长时间的保存,但是需要注意的是,用户能够在浏览器上禁用和编辑cookie,因此一定不要将敏感信息存放,以防泄露;当cookie被浏览器禁用,可以通过URL参数形式传递cookie。
(3)安全性
除了(2)中谈到的用户可对cookie编辑和禁用外,还用一点就是session在与客户端连接时会生成对应的session-id,而cookie则没有,但是客户端获取Session需要通过Cookie里面的SessionId,Cookie就是客户端与Session的中间桥梁。
总结分析参考图: