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

相关推荐
大阿明5 小时前
Spring Boot(快速上手)
java·spring boot·后端
墨香幽梦客6 小时前
API集成技术规范:RESTful与GraphQL在企业系统对接中的应用对比
后端·restful·graphql
刀法如飞7 小时前
AI编程时代,为什么35岁以上程序员会更吃香?
人工智能·后端·ai编程
小码哥_常7 小时前
Spring Boot 遇上 HMAC-SHA256,API 安全大升级!
后端
小码哥_常7 小时前
10分钟极速掌握!SpringBoot+Vue3整合SSE实现实时消息推送
后端
大黄说说8 小时前
深入 Go 语言 GMP 调度模型:高并发的秘密武器
后端
云原生指北9 小时前
Omnipub E2E 测试文章 - 自动化验证
后端
IT_陈寒9 小时前
SpringBoot自动配置揭秘:5个让开发效率翻倍的隐藏技巧
前端·人工智能·后端
添尹10 小时前
Go语言基础之数组
后端·golang
luom010211 小时前
SpringBoot - Cookie & Session 用户登录及登录状态保持功能实现
java·spring boot·后端