Cookie和Token的区别

这篇具有很好参考价值的文章主要介绍了Cookie和Token的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Token和Cookie 的共同点都是用来判断用户是否“已登录”,至于判断具体是哪个用户,服务器的做法不一样:

1、Cookie

HTTP 是无状态的协议,每个请求都是完全独立的,服务端无法确认当前访问者的身份信息,无法分辨上一次的请求发送者和这一次的发送者是不是同一个人。所以服务器与浏览器为了进行会话跟踪(知道是谁在访问我),就必须主动的去维护一个状态,这个状态用于告知服务端前后两个请求是否来自同一浏览器。Cookie是服务器发送到用户浏览器并保持在本地的一小块信息,他会在浏览器下次向服务器发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器。

  • 用户第一次请求服务器的时候,服务器根据用户提交的相关信息,创建对应的 Session ,response时将此 Session 的唯一标识信息 SessionID 返回给浏览器,浏览器接收到服务器返回的 SessionID 信息后,会将此信息存入到 Cookie 中,同时 Cookie 记录此 SessionID 属于哪个域名。
  • 当用户第二次访问服务器的时候,请求会自动判断此域名下是否存在 Cookie 信息,如果存在自动将 Cookie 信息也发送给服务端,服务端会从 Cookie 中获取 SessionID,再根据 SessionID 查找对应的 Session 信息,如果没有找到说明用户没有登录或者登录失效,
  • 只有找到 Session 才可以证明用户已经登录, 就可执行后面操作。

2 Token

使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录。大概的流程是这样的:文章来源地址https://www.toymoban.com/news/detail-515788.html

  • 客户端使用用户名、密码请求登录
  • 服务端收到请求,去验证用户名、密码
  • 验证成功后,服务端会签发一个 Token令牌-就是字符串-作为个人身份标识,再把这个 Token 发送给客户端
  • 客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 、Session Storage里
  • 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token(cookie或者请求头里都可以)
    服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据
  • 客户端向服务器端发送消息的时候,服务器端可能有多个服务器,-----我们的token信息存储在readis或者其他容器内
  • 那么无论客户端请求那个服务器,服务器只需要携带token去容器中寻找就可以了

3、区别

  1. Cookie 是前后端共享的,前端也能操作Cookie,后端也能操作Cookie
  2. token相当于是一个前端的缓存,后端不能直接读取到他,需要前端先从缓存里读出来,通过http接口参数,传递给后端,后端才能拿到。后端也不能直接修改它,token只能由前端页面做修改。
  3. 在客户端存储的Tokens是无状态的,并且能够被扩展。基于这种无状态和不存储Session信息,负载均衡器能够将用户信息从一个服务传到其他服务器上。
  4. 请求中发送token而不再是发送cookie能够防止CSRF(跨站请求伪造)可以使用请求头。即使在客户端使用cookie存储token,cookie也仅仅是一个存储机制而不是用于认证。不将信息存储在Session中,让我们少了对session操作。

到了这里,关于Cookie和Token的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Cookie和Token的区别

    Token和Cookie 的共同点都是用来判断用户是否“已登录”,至于判断具体是哪个用户,服务器的做法不一样: HTTP 是无状态的协议,每个请求都是完全独立的,服务端无法确认当前访问者的身份信息,无法分辨上一次的请求发送者和这一次的发送者是不是同一个人。所以服务器

    2024年02月11日
    浏览(26)
  • Cookie 和 Token 的区别?

    说到 cookie、token 应该没有人不知道的吧,而如果说让大家说出 cookie、token 到底是什么关系,大家能说出来吗,往往这种看似简单的东西,一到关键的场面,就很容易让我们陷入尴尬,明明知道是什么,却解释不清楚,被 Pass 后一脸冤枉,因此,本篇我们就来稍微回顾下 coo

    2024年02月03日
    浏览(68)
  • session、cookie、token的区别?

    今天就来理一理session、cookie、token这三者之间的关系! 我们都知道 HTTP 协议是无状态的,所谓的无状态就是客户端每次想要与服务端通信,都必须重新与服务端链接,意味着请求一次客户端和服务端就连接一次,下一次请求与上一次请求是没有关系的。 这种无状态的方式就

    2023年04月12日
    浏览(31)
  • cookie、session、token的区别

    HTTP无状态 当登录一个大部分网站的时候,第一次登录之后,之后的很长一段时间当我们再次访问网站的时候都不需要我们再次登录了,这个是怎么回事呢? 我们都知道http是无状态的,什么是无状态:关闭网页,再次访问服务器,服务器是不能知道是你在访问。所以就是靠接

    2024年02月08日
    浏览(25)
  • 泛微OA服务器获取 token

    泛微OA服务器获取 token 对于获取 token,其实泛微官方的文档提供了方法,大致步骤是:数据库插入 appid- 注册 - 拿到 spk 和 secret 后加密作为 secret - spk 和用户 id 加密才是真正的 userid - 根据加密后的 secret 和 appid 获取 token。 整个步骤比较繁琐,此处本人演示原始泛微的方法和

    2024年04月15日
    浏览(36)
  • C# 获取Http请求服务器响应的cookie

    一、C#服务器端响应存储cookie   二、C#发送Http请求,获取响应cookie 使用: CookieContainer  打印结果:   更多:

    2024年02月02日
    浏览(35)
  • cookie、session和token的区别

    作用:三者的作用是在浏览器上保存用户的登录态,其实就是实现用户在网页上登录过一次后,一段时间内再次访问不需要重新登录,会实现自动登录的一个效果。 cookie: 是客户端用来存放数据的一个容器,大小约为4k,是服务器发送到用户浏览器并保存在本地的一小块数据

    2024年02月14日
    浏览(34)
  • Java 网络编程 —— 创建多线程服务器

    一个典型的单线程服务器示例如下: 服务端接收到一个客户连接,就与客户进行通信,通信完毕后断开连接,然后接收下一个客户连接,假如同时有多个客户连接请求这些客户就必须排队等候。如果长时间让客户等待,就会使网站失去信誉,从而降低访问量。 一般用并发性

    2024年02月02日
    浏览(36)
  • 网络服务器带宽Mbps、Mb/s、MB/s有什么区别?10M、100M到底是什么概念?

    网络服务器带宽Mbps、Mb/s、MB/s有什么区别?我们经常听到IDC提供的服务器接入带宽是10M独享,或者100M独享,100M共享之类的数据。这的10M、100M到底是什么概念呢?今天小编就给大家进行网络基础知识普及,希望能帮到大家! 工具/原料 adsl 光钎 方法/步骤 1、例如所谓 10M 带宽,

    2024年02月07日
    浏览(36)
  • Token,Cookie和Session三者的区别

    在做各种接口测试时,经常会碰到请求参数为token的类型,但是可能大部分测试人员对token,cookie,session的区别还是一知半解。 cookie是服务器端生成发送给客户端在客户端保存的 session是放在服务器端来和客户端的cookie做匹配的 Token是为了解决客户端频繁向服务端请求数据,服

    2024年02月04日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包