cookie 和 session 的区别
1. 前言
cookie 和 session 的区别是什么?这个问题在面试中问到的频率非常高
cookie 和 session 的共同点: 都是用来记录用户访问浏览器时保存的数据,比如:用户的身份信息等
2. cookie 和 session 的工作原理
cookie 工作原理:
浏览器端第一次发送请求到服务端,服务器端创建 cookie,该 cookie 中包含用户的信息,然后将该 cookie 发送到浏览器端。浏览器端再次访问服务器端时会携带上服务器端创建的这个 cookie,服务器端通过 cookie 中携带的数据区分不同的用户
session 工作原理:
浏览器端第一次请求到服务端时,服务器端会创建一个 session,同时创建一个特殊的 cookie,这个 cookie 的值就是 session_id,服务器端将这个 cookie 发送到浏览器端。当浏览器端再次请求服务器端时,浏览器端会携带上这个 cookie,服务器端会很根据这个 cookie 值,也就是 session_id,去查询 session 数据,从而区分不同用户
3. cookie 和 session 的区别总结
cookie 数据存放在浏览器端,session 数据存放在服务器端,但是 session_id 存放在浏览器端
1. 安全性
因为 cookie 数据存放在浏览器端,所以 cookie 没有 session 安全,别人可以分析存放在本地的 cookie 并进行 cookie 欺骗,考虑到安全性建议使用 session
2. session 会占用服务器性能
session 会在一定时间内保存在服务器上,当访问增多时会比较占用服务器的性能,考虑到减轻服务器性能耗损,应当使用一些 cookie
3. cookie 保存的数据受限
单个 cookie 保存的数据不超过 4k,而 session 则存储在服务器端,可以保存更多复杂的数据类型
4. 当禁用 cookie 后,session 还能使用吗?
当我们了解过 session 的工作原理后,可以得知,使用 session 的过程中,session_id 是存放在浏览器端的 cookie 中的,所以,当我们禁用 cookie 后,session 是不能正常使用的
那么问题来了,禁用了 cookie,还想要正常使用 session,应该怎么做呢?
禁用 cookie 后,session 不能正常使用的原因是 cookie 中的 session_id 无法发送到服务器端;所以,只要将 session_id 想办法传递给服务器端即可。方法有很多,比如最常见的: URL 传参
本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!
从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!
本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。
本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。
若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。