cookie和session
- cookie
http协议是一个无状态协议,在浏览器同一个域名的不同页面,需要重复登录,因为浏览器不认识你
- express 中的cookie
- 下载 cookie-parser
npm i --save-dev cookie-parser
- 引入cookie-parser并启用cookieparser
const cookieparser=require('cookie-parser'); app.use(cookieparser());
- 设置 cookie
res.cookie('名','值',{maxAge:'最长存活时间',httpOnly:true})
- express中 cookie获取
req.cookies.名字
- 具体例子
const express = require("express"); const app = express(); const cookieparser = require("cookie-parser"); app.use(cookieparser()); //设置cookie //let mudidiAry = []; app.get('/gonglue', (req, res) => { let mudidi = req.query.mudidi; let mudidiAry = req.cookies.mudidi || []; mudidiAry.push(mudidi); res.cookie('mudidi', mudidiAry); res.send(`我的目地地是"${mudidi}"`) }); //取cookie app.get('/', (req, res) => { let liks = req.cookies.mudidi; res.send(`我可能想去的地方有"${liks}"`) }); app.listen(8080);
浏览器展示情况:
图一: 当我请求http://localhost:8080/gonglue?mudidi=北京;并且
mudidi分别设置为 mudidi=上海,mudidi=成都的值的时候,都会存入cookie中
图二:从cookie取出存入的值 - express 中的cookie
- cookie 的缺点
- 不加密,可以自由的看到
- 用户可以删除,或者禁用它
- 可以篡改
- 存储量小,可以被localStorage替代
- cookie 的缺点
- 不加密,可以自由的看到
- 用户可以删除,或者禁用它
- 可以篡改
- 存储量小,可以被localStorage替代
- session 的缺点
- 设置session
req.session.xxx=xxx
- 设置session
req.session.xxx
- 设置session
- cookie和session 的区别
- cookie是明码,session是乱码
- cookie还存在浏览器端,session存在服务器端
- cookie内存小,session内存大
网友评论