1、cookie
在浏览器保存一些数据,每次向服务器发起请求是都携带
不安全,用户可以修改
大小为4k
2、session
与cookie作用一致,用来保存一些数据,只是保存在服务端,
相对安全,用户不可修改,基于cookie实现
session_id 存放在cookie中 导致存在隐患:session劫持
3、使用cookie
发送cookie
res.cookie("name","123456",{path:"./cookie",maxAge:30*24*3600*1000});//path哪些页面可以使用cookie
res.send("ok");
cookie可以设置以下几个选项
domain:控制和cookie相关的域名
path:应用这个cookie的路径
maxAge:保存多久
secure:指定这个cookie只通过https连接发送
httpOnly:表明这个cookie只能有服务器修改,客服端不能修改
signed设置为true事表示这个cookie会被签名
读取cookie
const cookieParser = require("cookieParser");
server.use(cookieParser());
console.log(req.cookies);//cookie可以向上解析 上一级目录可以访问
对cookie加密
req.secret = "123456";
req.cookie("name","123456",{signed:true});//对cookie实行签名
删除cookie
res.clearCookie("user");
4、使用session
使用
const cookieSession = require("cookie-session");
server.use(cookieSession({
keys:["111","3333","2222"],
}));//除此之外还有store:回话存储的实例,如何存储session
cookie 回话cookie的cookie设置
删除session
delete res.session[""];
5、通过cookie实现
app.get('/', function (req, res) {
// 如果请求中的 cookie 存在 isVisit, 则输出 cookie
// 否则,设置 cookie 字段 isVisit, 并设置过期时间为1分钟
if (req.cookies.isVisit) {
console.log(req.cookies);
res.send("再次欢迎访问");
} else {
res.cookie('isVisit', 1, {maxAge: 60 * 1000});
res.send("欢迎第一次访问");
}
});