cookie + session 自己理解

cookie状态保持::::::::::

Cookie是保存在客户端的纯文本文件,比如txt文件,所谓的客户端就是我们自己的本地电脑,当我们使用自己的电脑通过浏览器进行访问网页的时候,服务器就会生成一个证书并返回给我的浏览器并写入我们的本地电脑,这个证书就是cookie

在浏览器,请求头部分生成一个文件,但是容易被别人获取

session

基于cookie

当浏览器第一次访问服务器时,服务器创建一个session对象(该 对象有一个唯一的id,一般称之为sessionId),服务器会将sessionId 以cookie的方式发送给浏览器。 当浏览器再次访问服务器时,会将sessionId发送过来,服务器依据 sessionId就可以找到对应的session对象

基于cookie实现,因为是动态,所以要放在cookie文件中,所以在cookie中会生成cookie+sessionid

session状态保持流程

首次登录: 点击登录后-->发送request请求,把username和password,发送到后台 -->与数据库的数据进行对比,成功,会在服务器生成sessionid,在服务器保存sessionid-->把数据和sessionid返回到前端-->在前端进行数据展示,把sessionid保存在cookie中.
​
再次登录时: 前端发送reqeust请求,把数据和cookie发送给后端-->后端取到sessionid与服务器的sessionid进行比对验证,成功对数据进行处理,完成后把sessionid和数据一起返回给前端

Token::

分三部分: 中间有两个点 两个点将token分为三部分

头部: 申明自己的形式,加密方发

载荷: 存放数据 {公共的,私有的}

签名: 验证

第一次登入的时候 携带着数据 然后将这些数据加密形成的token存在服务端 并且返回token 然后当第二次登入的时候 携带着返回的token 验证token是否相同 如果相同就通过

头部和载荷加密的是可以逆转的 但是签名又一次将头部和载荷再一次加密 然后加上随机的东西 是不可以逆转的 而且这个随机的东西是只有自己知道的 所以对于别人来说 是可以阻挡的

上一篇:SSO单点登录之Asp.Net实现示例(不需要动数据库)


下一篇:dotnet 日志上报的 TracerId 和 SessionId 的意义