Session 和 Cookie 的区别

Session 是由于 HTTP 协议无状态,但服务端需要区别用户而衍生出的概念,表示“会话”的意思。其中 Session 保存在服务端,每个用户对应一个 Session。服务端保存 Session 的方式有很多:内存、数据库,文件等。在分布式场景下,还需要考虑 Session 在各服务端间的共享,此时一般通过单独的缓存服务器如 Memcached、Redis 来保存 Session。

然而光有 Session 是往往不够的,服务端还需要根据浏览器请求找到对应的 Session,这时就需要 Cookie 登场了。Cookie 是真实存在的属性,保存在浏览器端,随 HTTP 协议传到服务端。客户端在第一次访问服务端时,服务端通过 HTTP 协议告诉浏览器需要保存 Session ID 在 Cookie 中,以后该浏览器的所有请求都可以通过 Session ID 获取到对应的 Session,也就可以区别用户了。

也就是说,Session 基于 Cookie 实现,Cookie 保存在客户端、Session 保存在服务端。Session 用于在服务端区分不同客户端,每个客户端对应一个 Session,也就是会话。然而有时客户端会禁用 Cookie,此时一般通过 URL 重定向实现 Session,在每次 HTTP 交互中,在 URL 后面附加诸如 sid = xxxxx 的参数,通过该参数获取对应 Session 会话。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值