node.js cookie和session

本文介绍了HTTP协议中的会话管理机制,包括cookie和session的工作原理及其使用方式。详细探讨了cookie和session的区别,如存储位置、安全性及容量限制,并提供了如何在Express框架中设置和操作它们的具体示例。

express:
1.数据
2.中间件

--------------------------------------------------------------------------------------------------------------

http-无状态的

cookie、session

cookie:在浏览器保存一些数据,每次请求都会带过来
*不安全、有限(4K)

session:保存数据,保存在服务端
*安全、无限

--------------------------------------------------------------------------------------------------------------

session:基于cookie实现的
*cookie中会有一个session的ID,服务器利用sessionid找到session文件、读取、写入

隐患:session劫持

--------------------------------------------------------------------------------------------------------------

cookie
1.读取——cookie-parser
2.发送——

session
cookie-session

--------------------------------------------------------------------------------------------------------------

cookie:
1.cookie空间非常小——省着用
2.安全性非常差

1.精打细算
2.校验cookie是否被篡改过

a.发送cookie
res.secret='字符串';
res.cookie(名字, 值, {path: '/', maxAge: 毫秒, signed: true});

b.读取cookie
cookie-parser

server.use(cookieParser('秘钥'));

server.use(function (){
req.cookies 未签名版
req.signedCookies 签名版
});

c.删除cookie
res.clearCookie(名字);

--------------------------------------------------------------------------------------------------------------

cookie-parser
cookie-encrypter

--------------------------------------------------------------------------------------------------------------

session:
cookie-session

1.写入
2.读取

session劫持

--------------------------------------------------------------------------------------------------------------

cookie-session

server.use(cookieParser());
server.use(cookieSession({
keys: [.., .., .., ..]
}));

server.use('/', function (){
req.session
});

delete req.session

--------------------------------------------------------------------------------------------------------------

1.cookie-存在浏览器,4K,不安全
签名、加密

2.session-存在服务器
不能独立存在,基于cookie

--------------------------------------------------------------------------------------------------------------

server.use(cookieParser('签名字符串'));
server.use(cookieSession({

}));

server.use(function (req, res){
res.cookie(名字, 值, {signed: true});

res.cookies['user']
res.clearCookie('名字');

res.session['xxx']
delete res.session['xxx'];
});

--------------------------------------------------------------------------------------------------------------

转载于:https://www.cnblogs.com/patriot/p/7269504.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值