Node学习(九)065-会话技术简介之cookie和session的优缺点——cookie-优点是节省服务器空间,缺点不安全 & session-优点是安全,缺点需要服务器空间 & 语法之设置和获取
5、cookie和session的优缺点
- cookie:优点是节省服务器空间,缺点不安全。
- 安全性要求不高的,使用cookie
- 视频看到什么位置等
- session:优点是安全,缺点需要服务器空间。
- 安全性要求高的,使用session
8.5 cookie和session
示例
-
Cookie:
- 设置cookie
- res.set({‘set-cookie’, ‘aaa=xxx’}); // 设置一个cookie
- res.set({‘set-cookie’, [‘aa=xx’, ‘bb=yyy’]}); // 设置多个cookie
- res.set({‘set-cookie’, [‘aa=xx;expires=世界时间’, ‘bb=yyy’]});
- 获取cookie
- req.headers.cookie
- 设置cookie
-
Session:
-
配置
const session = require('express-session'); app.use(session({ secret: 'ad325sdfjl23', // 加密的串。随意定义 cookie: { maxAge: 60000 }, // 过期时间,单位毫秒。目前过期时间是1分钟 resave: false, saveUninitialized: false }));
-
设置session
req.session.名字 = 值;
-
获取session
req.session.名字
-
cookie实例-图例
安包
npm i express
app.js
// 加载express
const express = require('express');
// 创建app对象
const app = express();
// 监听端口,开启服务
app.listen(3000, () => console.log('服务启动了'));
app.get('/test1', (req, res) => {
// 设置cookie
// 这里设置一个变量
let vcode = '2N9i';
// res.setHeader('Set-Cookie', 'yzm='+vcode);
let time = new Date(Date.now() + 60000*2).toUTCString();
res.set({
// 'set-cookie': 'yzm=aaaa'
'set-cookie': ['age=20;expires=' + time, 'name=zs', 'sex=f']
});
res.send('设置成功');
});
app.get('/test2', (req, res) => {
// 获取cookie
// 下面的这个接口能否使用上面接口定义的变量
console.log(req.headers.cookie);
res.send('获取成功');
});
app.get('/test3', (req, res) => {
// 获取cookie
// 下面的这个接口能否使用上面接口定义的变量
console.log(req.headers.cookie);
res.send('获取成功');
});
运行命令
nodemon ./app.js
#或者
node ./app.js
图例
1
2.1
2.2
2.3
3