Token和Cookie、密钥有什么区别?这些概念别再搞混了

最近在社区看到有人问「Token和Cookie的区别」,评论区一片混乱——有人在讲JWT,有人在讲GPT的上下文,两拨人根本没在讨论同一件事。

根源在于:Token这个词在不同领域含义完全不同。今天把这几个概念分开讲清楚。


先说结论

搜「Token和Cookie区别」的人,大多是Web开发背景,想了解身份验证机制。但如果你最近刚接触AI,你心里想的Token其实是另一个东西。这两个Token只是同名,本质毫无关联。


一、AI领域的Token(词元)

这是大语言模型处理文本的最小单位。文本在送入模型前会被分词器切成Token序列,模型逐个处理这些Token来理解和生成内容。

  • 用途:计量模型的输入输出量,决定API费用
  • 例子:「你好」≈ 3~4 Token;「Hello」= 1 Token
  • 和身份验证没有任何关系

二、Web Token(身份令牌)

Web开发里的Token是身份验证凭证。用户登录后,服务器颁发一个Token,后续请求带上这个Token证明「我是谁」。

最常见的形式是 JWT(JSON Web Token):一串Base64编码的字符串,包含用户信息和签名,格式长这样:

eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjEyM30.abc123
  • 用途:无状态身份认证,替代Session
  • 存储位置:通常存在 localStorage 或 Cookie 里
  • 有效期:可以设置过期时间

三、Cookie

Cookie是浏览器存储数据的机制,是一小段键值对,随请求自动发送给服务器。

  • 用途:存用户偏好、购物车、Session ID,也可以存Web Token
  • 关键特性:可以设置 HttpOnly(JS无法读取)、Secure(仅HTTPS)
  • 和AI Token完全不同领域

Cookie和Web Token的关系:Cookie是存储容器,Web Token是存储内容之一。Token可以放在Cookie里,也可以放在请求头的 Authorization 字段里。


四、API Key(密钥)

API Key是服务提供商颁发给开发者的访问凭证,长期有效,用于标识「哪个账号在调用」。

  • 例子:OpenAI、Anthropic颁发的 sk-... 字符串
  • 用途:计费、权限控制
  • 安全要求:绝对不能暴露在前端代码里

对比一览

概念 所属领域 本质 用途
AI Token(词元) AI/NLP 文本分词单元 计量模型处理量
Web Token(JWT等) Web开发 身份凭证字符串 用户认证授权
Cookie 浏览器 键值存储机制 持久化少量数据
API Key 开发者服务 访问密钥 接口调用鉴权

一句话记忆法

  • AI Token:模型把文字切成的「碎片」,用来算钱
  • Web Token:登录后服务器给你的「通行证」
  • Cookie:浏览器贴在请求上的「便利贴」
  • API Key:你在服务商那边的「身份证」

四个概念都叫「令牌/凭证」类的词,但分属不同技术栈,搞清楚语境再搜索,能省掉很多困惑。

你是在哪个场景下遇到这几个概念的?欢迎留言 :point_down:

2 个赞

这篇该在三年前就有人写。我当初刚入行的时候,在Stack Overflow搜Token,看到一半的答案在讲JWT,另一半在讲OpenAI,完全不知道自己看的是哪个维度的知识。更混乱的是,有些文章会把API Key也叫Token,比如「Personal Access Token」。建议再加一个维度:GitHub、GitLab这类平台的PAT(Personal Access Token)本质上也是一种API Key,和AI Token、Web Token都不是一回事,但名字带了Token,初学者很容易绕进去。

2 个赞

对比表做得好,收藏了。Cookie是容器这个角度讲得清晰。不过想补充一点:现代前端越来越倾向于把Web Token存在内存(变量)里而不是Cookie,因为Cookie会面临CSRF攻击,存在内存的Token被XSS偷到之后刷新页面就失效了,trade-off不一样。所以「Token存在Cookie里」虽然常见但并不是唯一做法。

5 个赞

感谢整理,终于把这几个概念对上了。我是做数据分析的,最近开始用AI API,一直以为API Key就是Token,原来API Key是长期凭证、Web Token是短期令牌,用途完全不同。

4 个赞

多次被封心态已经佛了