cookie的执行原理:当客户端访问服务器时,服务器会创建一份cookie发送到客户端,客户端会自动保存cookie,以后客户端每次访问服务器时都会自动携带这份cookie
1,安装cookie
npm i cookie-parser
2.使用
实例
var cookieparser=require('cookie-parser')
app.use(cookieparser())
生成cookie 服务器在响应时将cookie发送到客户端
res.cookie()
//可放两个参数
第一个参数cookie名称,第二个参数存放的数据
取出cookie
req.cookies
注意 客户端访问服务器会自动携带这份cookie,在请求中取出cookie
加密cookie
app.use(cookieparser("xi"))//密钥名称 xi
//使用
res.cookie('mycookie','jock',{signed:true}//加密)
取出
console.log(req.signedCookies);
cookie的特点:
-
保存到客户端,容易被篡改(删除、禁用)
-
保存的数据量有限的
-
简单易懂好用
session是一种特殊的cookie
当客户端一次请求服务器时,服务器生成一份session保存在服务端,,将该数据(session)的id以cookie的形式传递给客户端;以后的每次请求,浏览器都会自动的携带cookie来访问服务器(session数据id)。
1.安装
npm i express-session
2.使用
//引入session中间件
let expressSession=require('express-session');
//使用session中间件
app.expressSession({
resave:true,//每次是否都刷新存储器
saveUninitialized:true,
secret:"xiaoxuesheng" //秘钥
})
使用session存储数据:
//将数据存储到session中
req.session.yourcode='xyz';
取出session数据:
//取出存储的session
console.log(req.session);
cookie 和 session 的区别
cookie 存在于客户端,session存在于服务器端
cookie一般用来记录用户的登录信息,随请求一起发送到服务器端,cookie安全性相对于session较低些,cookie可以被截取和欺骗服务器。
session是服务器记录用户状态信息的技术,当客户端首次请求服务器时,服务器会为该客户端创建一个唯一的对象,称之为session对象,并且会生成sessionID返回给客户端,当客户端再次请求的时候,携带着这个sessionID,服务器就会识别出这个客户sessionID并处理相应的操作。
所以cookie和session通常会配合起来使用,来达到让Http请求变成有状态的。