Cookie和JWT

1. 核心定义:它们是谁?

  • JWT (JSON Web Token) :是一种数据格式。它像是一张"电子身份证",内部加密保存了用户 ID、姓名、过期时间等信息。它解决的是**"信息如何安全存储和校验"**的问题。

  • Cookie :是一种传输与存储机制。它是浏览器的一个"小抽屉",也是 HTTP 协议的一个 Header。它解决的是**"信息如何在浏览器和服务器之间自动搬运"**的问题。


2. 关系总结:信件与信封

在你的项目中,两者的关系可以总结为:JWT 是信件,Cookie 是信封。

  • 不结合时 :JWT 通常放在 Header 的 Authorization 字段里,需要前端手动写代码去塞。

  • 结合后 :后端把 JWT 塞进 Cookie。浏览器在每次请求时,会自动把 Cookie 里的 JWT 带给后端,无需前端干预


3. 关键差异对比

面试官最喜欢问:既然有了 Session 模式的 Cookie,为什么还要用 JWT 模式的 Cookie?

维度 传统 Session + Cookie JWT + Cookie (你的项目)
存储位置 服务器(内存/数据库/Redis) 客户端(存放在浏览器中)
状态性质 有状态。后端必须存一份 Session 才能识别你是谁。 无状态。后端不存任何数据,解密 JWT 字符串即知身份。
扩展性 较差。多台服务器需要做 Session 共享。 极好。任何一台服务器只要有密钥就能解密。
安全性 容易受到 CSRF 攻击。(跨站请求伪造) 同样面临 CSRF,但配合 HttpOnly 极大提升安全性。

4. 为什么要配合 HttpOnly?(面试必杀技)

这是你简历中的亮点。你必须告诉面试官:

  • 默认 Cookie 是不安全的,JavaScript 可以直接读取它。

  • HttpOnly Cookie:一旦设置,JavaScript 脚本无法访问此 Cookie。这使得即便网站存在 XSS 漏洞,黑客也拿不到你的 JWT。


5. 你的项目闭环(话术参考)

"在我的《中国街健网》项目中,我采用了 JWT + HttpOnly Cookie 的方案。后端生成 JWT 令牌后通过响应头下发给浏览器,利用 Cookie 的自动携带特性简化了前端开发;同时,通过 JWT 的无状态特性降低了服务器的存储压力。通过设置 HttpOnly 标志,有效防御了 XSS 攻击对身份令牌的窃取。"


💡 总结一句话

JWT 负责"内容自包含且防篡改",Cookie 负责"在浏览器端自动且安全地传递"。

秦同学,这套总结涵盖了面试中 80% 的认证相关问题。既然总结好了,我们要不要聊聊你的 Linux 服务器 118.89.123.57 上,是如何配置 Nginx 来处理这些 Cookie 和跨域问题的?

相关推荐
好好研究8 小时前
总结SSM设置欢迎页的方式
xml·java·后端·mvc
小马爱打代码9 小时前
Spring Boot:第三方 API 调用的企业级容错设计
java·spring boot·后端
csdn2015_10 小时前
springboot task
java·spring boot·后端
czlczl2002092510 小时前
Spring Boot :如何高性能地在 Filter 中获取响应体(Response Body)
java·spring boot·后端
码界奇点11 小时前
基于Spring Boot和Vue3的无头内容管理系统设计与实现
java·spring boot·后端·vue·毕业设计·源代码管理
To Be Clean Coder12 小时前
【Spring源码】createBean如何寻找构造器(二)——单参数构造器的场景
java·后端·spring
你才是臭弟弟12 小时前
SpringBoot 集成MinIo(根据上传文件.后缀自动归类)
java·spring boot·后端
C澒12 小时前
面单打印服务的监控检查事项
前端·后端·安全·运维开发·交通物流
鸣潮强于原神12 小时前
TSMC chip_boundary宽度规则解析
后端
Code blocks12 小时前
kingbase数据库集成Postgis扩展
数据库·后端