初识session

每天对自己多问几个为什么,总是有着想象不到的收获。 一个菜鸟小白的成长之路(copyer)

介绍

特点:

  • session由服务端生成,保存在服服务端
  • session是以键和值的形式进行存储
  • session依赖于cookie,每个session信息对应的客户端的标识符保存着cookie中

解释: 为什么session依赖于cookies

可以知道session产生于服务端,并且保存在服务端, 就是在服务端内部开辟一个内存,用来保存session,那么这个内容就有相应的标识符(简单理解:就是内存的地址),然后把这个标识符保存在cookie然后利用cookie的特性,每次请求都会携带cookie传送到服务端,那么服务端也就可以拿到session的标识符,从而拿去到相应的状态。


图解:

在这里插入图片描述


使用

安装:

npm install cookie-session

使用:

const cookieSessioin = require('cookie-session')

app.use(cookieSessioin({
  name: 'my_session',       // 后端给前端种cookie的名字叫做mycookie
  keys: ['james', 'kobe'],    //加密层级
  maxAge: 60 * 60 * 1000 * 24   //失效时间(一天)
}))

//获取session
app.get('/get_session', (req, res) => {
  console.log(req.session);
  res.send('获取session')
})

//设置session
app.get('/set_session', (req, res) => {
  req.session.name = 'james'
  req.session.age = 22
  res.send('设置session')
})

这里主要的注意的是: cookieSessioin 的 name属性, 属性值, 就是cookie中的key中,其value值就session的标识符。


访问/set_session

第一次访问服务器的时候,就会设置session用来保存用户的状态,然后保存在服务端的内容中,在响应头设置cookie来保存session的标识符

在这里插入图片描述

这里可以看见,响应头里面,就有 Set-Cookie属性,用来设置cookie, 这里也可以看见 my_session 这个key值就是上面设置的name的属性值,my_session的value就是session的标识符


访问/get_session

访问get_session, 应该就可以看见请求头里面的cookie属性包含 my_session这个键值对

在这里插入图片描述

在请求头中的cookie中,成功的看到my_sessionkey值, 就说明session的标识符被携带服务器中,做着对应的操作


为什么?

1、session在哪里产生

​ 服务器

2、session保存在哪里

​ 服务器

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值