栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

EXPRESS框架中的cookie-parser与express-session应用与区别

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

EXPRESS框架中的cookie-parser与express-session应用与区别

1.cookie-parser是一个能简单粗暴的解决http的无协议状态(客户端与服务端互相不认识)的问题的第三方中间件。

它的使用方法:

(1)安装

npm i cookie-parser

(2)引入

var cookieParser = require('cookie-parser');

app.use(cookieParser());//不加密

app.use(cookieParser(“签名”));//加密

(3) 生成 

router.get('/code', function(req, res, next) {
    //不加密
    // res.cookie('xiaoming', '222');
    // console.log(req.cookies);//取出不加密


    //加密
    res.cookie('xiaohong', '222', {
        signed: true
    });
    console.log(req.signedcookies); //取出加密

    res.send(11);
});
2.cookie的执行原理:当客户端访问服务器的时候(服务运用了cookie),则服务器会生成一份cookie传输给客户端,客户端会自动把cookie保存起来;以后客户端每次访问服务器,都会自动的携带着这份cookie。

打个比方:就相当于你想办理一个地方的出入证明,第一次先得找服务人员办证。服务人员会给你一个证卡。你需要保存起来,以后你每次想进去那个地方的时候就需要携带这个证卡。

cookie虽然简单好用但是他存在风险性,他每次会把数据保存在客户端,,容易被篡改(删除、禁用),且保存的数据有限。

3.那么我们的 express-session此时就闪亮登场了,session是一种特殊的cookie。cookie是保存在客户端的,而session是保存在服务端。

(1)安装

x npm i express-session

(2)引入

//引入session中间件
let expressSession=require("express-session")

//使用session中间件
app.use(expressSession({
  resave:true,//每次是否都刷新存储器
  saveUninitialized:true, 
  secret:"xiaoxuesheng" //秘钥
}))

(3) 生成 

// express-session
//存数据
router.get('/sess', (req, res) => {
    req.session.youname = 'xx';
    res.send('ok')
});
//取数据
router.get('/sess1', (req, res) => {
    console.log(req.session);
    res.send('ko')
});

session的执行原理:当客户端第一次请求服务器的时候,服务器生成一份session保存在服务端,将该数据(session)的id以cookie的形式传递给客户端;以后的每次请求,浏览器都会自动的携带cookie来访问服务器(session数据id)。

session就比较有安全性了,他是把数据存储到服务端更加的安全,返回给客户端的是一个id,能有效的反之用户篡改数据。

4总结:

.cookie 是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个WEB站点会话间持久的保持数据。

.session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。 Session其实是利用cookie进行信息处理的,当用户首先进行了请求后,服务端就在用户浏览器上创建了一个cookie,当这个Session结束时,其实就是意味着这个cookie就过期了

(1)cookie的特点:

  • 保存到客户端,容易被篡改(删除、禁用)

  • 保存的数据量有限的

  • 简单易懂好用

(2)session的特点:

  • 保存到服务端,能防止被篡改(删除、禁用)

  • 能保存大量的数据

  • 比较占内存

(2)cookie和session的区别:

        1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

        2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗
             考虑到安全应当使用session。

        3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
             考虑到减轻服务器性能方面,应当使用cookie。

        4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie

(3)cookie和session的共同点:cookie和session都是用来跟踪浏览器用户身份的会话方式

    所以个人建议:
   将登陆信息等重要信息存放为SESSION
   其他信息如果需要保留,可以放在cookie中

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/679800.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号