Session与Cookie与token的的区别?

Session与Cookie以及token有什么区别?
1、Cookie的特点
(1)特点

存储在浏览器上,一个浏览器可以存储的Cookie为200个,一个web的网站能设置的Cookie不能超过20个,Cookie的大小不能超过4K

(2)执行的流程

1、客户端发送HTTP请求到客户端
2、服务端收到请求之后,会发送一个响应头到客户端,这个响应头就包含Set-Cookie的头部
3、客户端发送第三次的请求(如果说服务需要我们发送一个Cookie的话,那么在第二次的过程中时,就会将上一次拿到的Cookie发送个服务端),提供了服务端可以识别客户端的信息。

持久化的Cookie和非持久化的Cookie

持久化的Cookie:可以存在于硬盘中,浏览器关闭的话,Cookie也是会存在的。
非持久化的Cookie:存在与内存中,如果浏览器关闭的话,Cookie也会随之消失。

2、Session的特点

Session存在于服务端,对于客户端来说是没有Session这个说法的,当服务端与客户端进行连接的时候,服务端的Session就会转换为一个临时的Cookie发送给客户端,如果是Session不存在的话,服务端就会创建一个Session,如果存在的话,就会使用这个Session(当用户从网站的服务器上推出的时候,那么这个Session也会随之消失)。
如果是服务器做了负载均衡的话,在不同的服务器上Session会失效,就要使用有些技术来实现Session的同步。

3、token
过程

(1)用户第一次登陆的时候,服务端会产生一个token,token会存在于服务器的数据库上,然后将这个token返回给浏览器。
(2)客户端收到token之后会将token存储在本地上
(3)客户端再次发送请求的时候,会将token发送到服务器上
(4)服务端收到这个token的时候会将token与本地的token进行比较,可以来验证身份。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这三个概念都与身份验证(Authentication)和会话管理(Session Management)有关。它们的主要作用是跟踪用户的状态及其与服务器之间的交互。它们的作用和区别如下: 1. Session(会话):当用户与服务器交互时,服务器会为每个用户创建一个会话,用于存储用户的状态和数据。会话可以在服务器端存储,也可以在客户端存储,具体取决于实现方式。在服务器端存储的会话需要使用 session ID 与客户端进行交互。 2. Cookie(HTTP Cookie):是一种机制,用于在客户端存储用户的数据,包括身份认证信息、浏览状态、个性化设置等。服务器可以在响应中设置一个或多个 Cookie,客户端会将这些 Cookie 保存在本地,并在每次请求时发送给服务器。 3. Token(令牌):是一种服务器生成的加密字符串,用于验证用户身份。Token 可以包含用户信息、权限、过期时间等,可以存储在客户端(如浏览器的 localStorage 或 sessionStorage),也可以存储在服务器端的数据库中。在用户登录时,服务器会为其生成一个 Token,每次请求时客户端会将 Token 附加在请求头中发送给服务器进行验证。 它们的区别在于存储位置、有效期、安全性等方面。Session 存储在服务器端,安全性较高,但需要占用服务器资源;Cookie 存储在客户端,便于管理,但容易受到 XSS 和 CSRF 攻击;Token 存储在客户端或服务器端,具有较高的安全性,但需要注意 Token 的有效期和刷新机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值