Session 和 Cookie 的联系和区别

本文深入解析了Session与Cookie的工作原理及应用,强调了两者在数据存储位置、安全性、性能及容量上的区别。适合Web开发者了解如何合理选择和使用Session与Cookie。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

联系
Session 对 Cookie 的依赖:Cookie 采用客户端存储,Session 采用的服务
端存储的机制。Session 是针对每个用户(浏览器端)的,Session 值保存在服
务器上,通过 SessionId 来区分哪个用户的 Session。因此 SessionId 需要被
绑定在浏览器端。 SessionId 通常会默认通过 Cookie 在浏览器端绑
定,当浏览器端禁用 cookie 时,可通过 Url 重写(可以在地址栏看到
sessionid=KWJHUG6JJM65HS2K6 之类的字符串)或者表单隐藏字段的方式
将 SessionId 传回给服务器,以便服务通过 SessionId 获取客户端对应的
Session。
具体一次的请求流程:当程序需要为客户端创建一个 Session 的时候,服务
器首先检测这个客户端请求里面是否已经包含了 Session 的表示(SessionId),
如果已经包含,则说明已经为客户端创建过一个 Session,服务端根据
SessionId 检索出来 Sesion 并使用。如果客户端请求不包含 SessionId,则为
客户端创建一个 Session,并生成一个 SessionId 返回给客户端保存。
区别
(1)Cookie 数据存放在客户的浏览器上,session 数据在服务器上。
(2)Cookie 不是很安全,别人可以分析存放在本地的 cookie 并进行 cookie
欺骗,考虑到安全应当使用 Session。
(3)Session 会在一定时间内保存在服务器上。当访问增多,会比较占用你服
务器的性能,考虑到减轻服务器性能方面,应当使用 Cookie。
(4)单个 Cookie 保存的数据不能超过 4K,很多浏览器都限制一个站点最多保
存 20 个 Cookie。
(5)可以考虑将登陆信息等重要信息存放为 Session,其他信息如果需要保
留,可以放在 Cookie 中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值