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 和跨域问题的?

相关推荐
IT_陈寒1 分钟前
Redis持久化丢失数据的坑,这次终于被我填平了
前端·人工智能·后端
葫芦和十三1 小时前
图解 MongoDB 24|分片为什么存在:垂直扩容的天花板
后端·mongodb·agent
有趣的老凌1 小时前
用 Vibe Coding 搭了一个完整小程序「一定能成」
前端·javascript·后端
葫芦和十三9 小时前
图解 MongoDB 23|两地三中心:跨可用区部署怎么扛机房故障
后端·mongodb·agent
勇哥java实战分享11 小时前
PaddleOCR 太慢?我换成 RapidOCR 后,速度直接起飞
后端
苏三说技术15 小时前
LangChain4j 和 LangGraph4j,哪个更好?
后端
ServBay16 小时前
7 个AI开发中真正用得上的 MCP Server,配合Claude Code食用效果更佳
后端·claude·mcp
妙码生花16 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十五):优化细节、网络请求封装
前端·后端·ai编程
用户67570498850217 小时前
Go 语言里判断字符串为空,90% 的人都写错了!
后端·go