各位楼友,冒昧借楼发个大厂内推信息~26届的学弟学妹们看过来!目前有6大热门岗位开放内推通道,​简历直接走优先筛选,比常规投递多一分进面机会!有意向的宝子戳这里直达内推入口→https://www.nowcoder.com/share/jump/1752476931363多投一份就是多一个可能性,欢迎转发给需要的同学~有其他问题也可以评论区留言,楼主尽量帮大家解答
Cookie、Session、Token 有什么区别?本文作者:程序员小白条本站地址:https://xbt.xiaobaitiao.top大家伙,我是程序员小白条,今天来聊一聊,经典面试问题,一般我开发项目就是 Token,JWT,第三方 Oauth2。在 Web 开发中,Cookie、Session 和 Token 都是用来管理用户状态的机制,但它们的工作原理和应用场景有很大不同。今天我们就来聊聊它们的区别,以及各自适合什么场景。1. Cookie(小饼干)Cookie 是服务器发给浏览器的一小块数据(通常只有几 KB),浏览器会把它存起来,并在每次请求时自动带上。怎么工作?1)服务器 在 HTTP 响应头里加一个 Set-Cookie,比如:Set-Cookie: user_id=123; Path=/; Expires=Wed, 21 Oct 2025 07:28:00 GMT2)浏览器 收到后存起来,下次访问相同域名时自动带上:Cookie: user_id=1233)服务器 读取 Cookie 识别用户。优点简单:浏览器自动管理,前端基本不用管。兼容性好:所有浏览器都支持。缺点不安全:容易被篡改(XSS 攻击)或偷走(CSRF 攻击)。大小受限:一般不超过 4KB。每次请求都带:浪费带宽。适用场景记住登录状态(比如“7 天内免登录”)。存储简单的用户偏好(比如主题颜色)。2. Session(会话)是什么?Session 是服务器存储的用户数据,通常用 Session ID 来关联用户。怎么工作?1)用户登录,服务器生成一个 Session ID(比如 sess_abc123),存到数据库或内存(如 Redis)。2)服务器 通过 Set-Cookie 把 Session ID 发给浏览器:Set-Cookie: session_id=sess_abc123; HttpOnly; Secure3)浏览器 下次请求时带上这个 Cookie,服务器查 Session ID 找到用户数据。优点比 Cookie 安全:敏感数据存在服务器,浏览器只存 ID。可存更多数据:不像 Cookie 有大小限制。缺点服务器压力大:每个用户都要存 Session,高并发时可能拖慢服务器。依赖 Cookie:如果浏览器禁用了 Cookie,Session 就失效了。适用场景传统的 Web 应用(如电商、后台管理系统)。需要存储较多用户数据的场景。3. Token(令牌)是什么?Token 是一种无状态的认证方式,最常见的是 JWT(JSON Web Token)。怎么工作?1)用户登录,服务器生成一个 Token(如 JWT),里面包含用户信息:{  "user_id": 123,  "exp": 1735689600  // 过期时间}2)服务器 把 Token 返回给前端(通常存到 localStorage 或 Cookie)。3)前端 每次请求在 Authorization 头里带上 Token:Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...4)服务器 验证 Token 是否有效,无需查数据库。优点无状态:服务器不用存 Token,适合分布式系统。跨域友好:适合前后端分离、移动端、API 调用。可自定义数据:Token 里可以直接存用户信息。缺点Token 一旦发出无法撤销(除非用黑名单机制)。比 Session 占用更多带宽(Token 通常比 Session ID 长)。适用场景前后端分离项目(如 Vue/React + API)。移动端 App 认证。微服务架构下的身份验证。面试官问你的话,直接背下面这个表格,用图形记忆会比较熟练。特性CookieSessionToken(如 JWT)存储位置浏览器服务器客户端(localStorage/Cookie)安全性较低(易被窃取)较高(数据在服务端)较高(可加密)状态管理无状态有状态(依赖服务器存储)无状态适用场景简单状态管理传统 Web 应用前后端分离/API我的一些建议:把重点放在 Token 上,另外要注意 Token 的三部分构成,以及加密算法,和后端需要配置的一些 yml 参数,这些说出来,可以加深面试官对你的印象,面试要在某一个部分上进入深入处理,这样的话就会大大加分,尽管你有一些问题完全没碰到过,但面试是找亮点的过程,而不是一个找缺点的过程!程序员小白条的编程日记:https://xbt.xiaobaitiao.top/ (分享如何拿到腾讯实习 Offer 和多个中大厂的面试机会,大学经历、求职经历、职场工作、创作经历、生活日常、面经、技术分享)定期更新内容,成长打怪系列,分享从大一到大四的完整面经,看完可冲中大厂!dy同名,主要口述面试经历,会比面经讲的详细很多,以真实面试录音为主!
点赞 12
评论 6
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务