Cookie和Session介绍

Cookie和Session的区别

  Cookie 和 Session 都是用于存储用户状态和数据的技术,但它们在工作原理、存储位置、安全性等方面有显著区别。

Cookie

存储位置:Cookie 存储在客户端(用户的浏览器)中。
存储大小:每个 Cookie 的大小限制在约 4KB。
生命周期:Cookie 可以设置过期时间(例如,几分钟、几小时或几年)。在过期时间之前,Cookie 会一直保存在客户端,除非被用户手动删除。
安全性:Cookie 可以很容易被用户查看和修改,因此存储在 Cookie 中的数据应该避免包含敏感信息。
支持 HTTPS 安全传输,通过设置 Secure 标志和 HttpOnly 标志可以提高安全性。
应用场景:适用于需要在客户端持久化存储少量数据的场景,比如记住用户的登录状态、用户偏好设置、跟踪用户行为等。用于跨会话存储信息,因为 Cookie 可以设置较长的过期时间

Session

存储位置:Session 数据存储在服务器端。客户端只保存一个唯一的 Session ID,这个 ID 存储在 Cookie 中(或 URL 中,但不推荐)。
存储大小:服务器端存储的大小只受服务器存储能力的限制,相对于 Cookie,可以存储更多的数据。
生命周期:Session生命周期通常较短,一般与用户的浏览器会话一致。当用户关闭浏览器或会话超时(没有活动一定时间),Session会失效。
安全性:Session 数据存储在服务器端,用户无法直接访问,因此安全性更高。Session ID 可以通过 HTTPS 安全传输,防止被窃取。
应用场景:适用于需要存储敏感信息和较大量数据的场景,如用户的登录信息、购物车、用户偏好等。适用于需要高安全性的场景,因为数据存储在服务器端,避免了客户端的安全风险。

Cookie和Session在登陆场景中的使用

  cookie和ssession虽然有一定的区别,但是实际场景中,cookie和session经常搭配使用。下图来源于极客时间专栏,下图是登陆场景中cookie和session搭配使用情况。在登陆场景中,调用login的接口,在数据库中存入用户登陆状态,并通过Set-Cookie把sessionID传递到客户端,客户端在cookie中存储了sessionId信息,后续用户在访问其他请求的时候,通过解析session,就可以知道用户当前的登陆状态。总结而言,两者虽然有区别,但又经常配合一起使用。

  以下图为例,这里是访问极客时间网站,可以看到在这个请求中通过Set-Cookie,将ServerID设置到了cookie中。在后续的请求中,Request中cookie的值里面,就包含了ServerID这个键值对。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

taoli-qiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值