栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

后端——缓存Cookie、缓存Session、cookies和Session的区别:

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

后端——缓存Cookie、缓存Session、cookies和Session的区别:

目录

一、缓存Cookie

二、缓存Session

三、cookies和Session的区别:


一、缓存Cookie

通过 ctx.cookies可以在 Controller 中便捷、安全的设置和读取 Cookie

classCookieControllerextendsController {
async add() {
    const ctx = this.ctx;
    let count = ctx.cookies.get('count');   //核心代码==> 存
    count = count ? Number(count) : 0;
    ctx.cookies.set('count', ++count);
    ctx.body = count;
  }
​
async remove() {
    const ctx = this.ctx;
    const count = ctx.cookies.set('count', null);     //核心代码==> 取
    ctx.status = 204;
  }
}

需要注意的是,cookie默认不支持中文,可以尝试转码,如encodeURI('中文egg'),然后再转回来decodeURI(ctx.cookies.get('username')) 清除cookie把值设置为null即可。

在设置cookie时有个对象类型的可选参数,可以对cookie进行相关设置:
maxAge:设置cookie的有效期,单位毫秒,默认浏览器关闭消失;
httpOnly:设置cookie是否允许js访问,默认true,不允许;
overwrite:如果设置为true,相同的键值对会被覆盖,否则发送两个;
signed:如果为true表示对cookie进行签名,不是加密,只是防止被篡改,注意在获取的时候也要提供该设置进行匹配;
encrypt:是否加密,true加密后客户端看不到明文,只能在服务器端获取,注意在获取的时候也要提供该设置进行匹配;

eg:     this.ctx.cookies.set("email",ziduan.email,{maxAge:1000*60*60*24*365})

二、缓存Session

1.Session配置

// config/config.default.js文件
    config.session = {
    key: 'SSION',
    maxAge: 24 * 3600 * 1000, // 1 天
    httpOnly: true,
    encrypt: true,
};

2.设置Session

class SessionController extends Controller {
    async setuser() {
      this.ctx.session.userid = 12345;//设置缓存数据
      this.ctx.session.maxAge = ms('30d')//单独设置过期时间
    }
}
//如果要删除userid,可以直接将它赋值为 null
//设置 session 属性时不要以 _ 开头,不要是已存在的功能属性

3.获取Session 首先要知道后端的缓存与前端的缓存的区别(面试题)

class SessionController extends Controller {
    async getuser() {
     var userid=this.ctx.session.userid
      console.log(userid)//在所有接口中都能访问userid,除非没有设置过
    }
}

三、cookies和Session的区别:

cookies:把信息缓存到前端(客户端)==>不合理

Session:把信息存到后端

后端的cookies 和 session都是前端的cookies

后端的 session==>把要缓存的信息存到了后端

前端的cookies==>把要缓存的信息存到了前端

前端的session和Localstorage和后端没关系

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1040684.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号