cookie,session和token的区别

文章详细介绍了Cookie、Session和Token的产生、保存方式及应用场景。Cookie保存在客户端,常用于登录状态保持和浏览历史记录;Session存储在服务器,用于识别用户会话,通常在Web应用中保存用户信息;Token则常用于APP或接口鉴权,保存在数据库,确保安全的身份验证。三者的主要区别在于保存位置和应用场景。
摘要由CSDN通过智能技术生成

cookie

首先说区别之前 追溯一下为什么需要cookie session这些鬼东西 我们都知道http协议是一种无状态协议(这次请求和下次请求是没有任何关联的) 这种协议的优点是飞快!但是缺点是两次请求无法关联 也就是我登陆之后下一次操作服务器就不认识我了
那么这时候cookie session用生活场景举例就是 去澡堂洗澡 为了辨别我是谁 给我发了一个手牌 这个手牌即是session 作为唯一标识 关联之后的任何请求

cookie的产生以及保存

web服务器产生,保存在客户端
(1)浏览器第一次访问服务端时,服务器此时因不知道它身份所以创建的一个独特的身份标识数据,格式为key=value键值对,放入到set-cookie字段里面,随着响应报文一起发送给浏览器
(2)浏览器看到有set-cookie的字段以后就知道这是服务器给的身份标识 于是就保存起来 下次请求时会自动将此key=value值放入到cookie字段中发给服务端 服务端收到请求报文后 发现cookie字段中有值 就能根据此值识别用户的身份然后提供个性化服务

cookie的分类

cookie分为持久化和非持久化
持久化的cookie可以存在于硬盘中 浏览器关闭的话 也不会影响;非持久化的cookie 存在于内存中 如果浏览器关闭的话 cookie也会随之消失

cookie在项目中应用的场景

登陆记住用户名
浏览器记录用户已经浏览过的网页

cookie如何查看(chrome为例)

在登陆进某一网页之后 Fn+F12打开开发者工具按照如下位置查看 在这FnF里插入图片描述
note: cookie数据有失效时间看expire值
在这里插入图片描述

Session

session的产生以及保存

web服务器 保存在服务器
当用户登录了系统 服务器端的web容器就会创建一个session 此会话中可以保存登录用户的信息 并且也是以键值对的形式去保存的 系统通过session技术来做的鉴权 因为只有当用户登录了才可以访问系统中的页面和数据

session在项目中应用的场景

一般只保存用户的用户名 时长默认是30min 这也是为什么当我们登陆系统一段时间后不使用就需要重新登录 因为30min之后session就已经丢失

session如何查看(以CSDN为例)

和cookie查看方法一致 注意这里的ASP.NET_SessionId这个名字不是固定的
在这里插入图片描述

Token

Token的产生以及保存

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

Token在项目中应用的场景

一般用于app项目登录鉴权或者接口鉴权 因为app项目和接口客户端都不是浏览器 因此就没有cookie和session了 所以通过token来鉴权

Token如何查看(以CSDN为例)

有些系统的token直接显示在后面的页面上 而接口的token一般在登录接口的返回值里面

区别总结(文章有点长 心急的直接看这里hh)

总的来说 它们都是web服务器产生的 只是保存在不同的地方 分别是 哭护短 服务器 数据库中 所以它们在项目中应用场景也不一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值