【个人笔记】Cookies和Tokens的区别

        Cookies和Tokens是Web开发中用于用户身份验证和会话管理的两种常见机制。它们各自有其特点和适用场景。

Cookies

定义

        Cookies是一种由服务器发送给客户端浏览器的小型文本文件,浏览器会将其存储起来,并在后续请求同一网站时自动将这些信息发送回服务器。Cookies通常用来保存用户的登录状态、个性化设置等信息。

如何工作

        当用户首次访问一个网站并成功登录后,服务器会创建一个包含用户身份信息的Cookie,并将其添加到HTTP响应头中发送给客户端。客户端接收到这个响应后,会将Cookie存储在本地。随后的每个请求中,客户端都会自动将这些Cookie信息附加在请求头中发送给服务器,这样服务器就能识别出用户的身份。

优点
  • 可以跨页面持久化存储信息。
  • 支持多种属性设置,比如过期时间、路径、域名、安全标志等。
缺点
  • 存储空间有限,一般不超过4KB。
  • Cookie是随每次HTTP请求发送的,可能会增加网络流量。
  • 存在安全风险,如CSRF攻击。

Tokens

定义

        Token(令牌)是一种由服务器生成的字符串,通常用于身份验证。它包含了用户的身份信息,加密后发送给客户端。客户端在后续请求中会将Token携带在请求头部,服务器可以通过解密Token来验证用户身份。

如何工作

        在用户登录时,服务器会生成一个Token,然后通过HTTP响应将其发送给客户端。客户端会将这个Token存储在内存、LocalStorage、SessionStorage或其他存储中。之后,客户端在每次请求时都会将Token放在HTTP请求头的Authorization字段中,以便服务器能够验证用户身份。

优点
  • Token可以存储更多的信息,且不会像Cookie那样受到大小限制。
  • Token不需要随每个请求发送,可以减少网络开销。
  • 提高安全性,因为Token可以是JWT(JSON Web Tokens),这种Token本身可以包含加密信息,使得中间人难以篡改。
缺点
  • 需要客户端实现存储和传输逻辑。
  • 如果Token丢失或被盗,可能需要更复杂的机制来处理。

Cookies vs. Tokens

  • 安全性:Tokens通常比Cookies更安全,尤其是当使用HTTPS和JWT时。但Cookies可以通过设置安全标志和HttpOnly标志来增强安全性。
  • 存储:Cookies受大小限制,而Tokens可以包含更多数据。
  • 传输:Cookies自动随每个请求发送,而Tokens需要显式地在请求头中加入。

        在现代Web应用中,通常会结合使用Cookies和Tokens。例如,使用Cookies来处理一些简单的会话管理任务,同时使用Tokens来进行更复杂的安全验证,如API调用。此外,一些框架和库,如OAuth和OpenID Connect,也依赖于Token来实现授权和身份验证流程。

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值