http-无状态的:两次访问之间,无区别,cookie可解决

cookie:在浏览器保存一些数据,每次请求都会带过来;

  弊端:可以查看修改,并不安全、大小有限(4K)

  读取--cookie-parser

  发送--

  

session:保存数据,保存在服务端,更加安全,大小无限

  基于cookie实现,通过cookie读取session值;cookie中会有一个session的ID,服务器利用session_id找到session文件、读取、写入

  隐患:session劫持--cookie加密、定期更换等

  cookie-session

1、发送cookie

  res.secret(签名);

  res.cookie(名字,值,{path:'/',maxAge:毫秒单位的有效期,signed:true}

2、读取cookie

  依赖cookie-parser 中间件  签名

    cookie-encrypter 中间件  加密

  server.use(cookieParser('asgewrwrfsf'));    //签名秘钥  必须和req.secret的一致  
  console.log('未签名的cookie:',req.cookies);   
  console.log('签名的cookie',req.signedCookies);
3、删除cookie
  res.clearCookie(名字)
 
const express = require('express');
const cookieParser = require('cookie-parser'); //读取cookie使用 var server = express();
server.listen(8080); server.use(cookieParser('asgewrwrfsf')); //签名秘钥 必须和下面req.secret的一致,才能解析正确,下面无需重新声明 server.use('/',function(req,res){
//req.secret = 'asgewrwrfsf'; //签名秘钥
res.cookie('user','userName',{ //存cookie,发送cookie
path:'/aaa/a.html', //此目录下才能访问
maxAge:30*24*2600*1000, //有效期 30天
signed:true, //签名 ,依旧可以看见,但是可以防止篡改
}); //读取cookie,需要依赖cookie-parser中间件,分开接收
console.log('未签名的cookie:',req.cookies);
console.log('签名的cookie',req.signedCookies); // res.clearCookie('user',{path:'/aaa/a.html'}); //删除cookie res.send('ok');
})

session读写:

  依赖cookie-session中间件,cookie-parser

  session劫持预防,key必须设置

const express = require('express');
const cookieParser = require('cookie-parser'); //读取cookie使用
const cookieSession = require('cookie-session'); var server = express();
server.listen(8080); server.use(cookieParser());
var arr = [];
for(var i=0;i<100000;i++){
arr.push('sig_'+Math.random());
};
server.use(cookieSession({
name:'se',
keys:arr, //防session劫持
maxAge:24*3600*1000, //有效期
})); server.use('/',function(req,res){
console.log(req.session);
if(req.session['count'] == null){
req.session['count'] = 1;
}else{
req.session['count']++;
}
 
 //删除session
 //delete req.session
res.send('ok2');
})

  

 

nodeJs学习-08 cookie、session的更多相关文章

  1. JavaScript学习08 Cookie对象

    JavaScript学习08 Cookie对象 JavaScript Cookie Cookie对象: Cookie是一种以文件的形式保存在客户端硬盘的Cookies文件夹中的用户数据信息(Cooki ...

  2. python 学习笔记十九 django深入学习四 cookie,session

    缓存 一个动态网站的基本权衡点就是,它是动态的. 每次用户请求一个页面,Web服务器将进行所有涵盖数据库查询到模版渲染到业务逻辑的请求,用来创建浏览者需要的页面.当程序访问量大时,耗时必然会更加明显, ...

  3. 【转】学习总结--Cookie & Session总结

    转载地址:http://www.phperzone.cn/portal.php?aid=718&mod=view 一.状态管理 1)什么是状态管理?   将浏览器与web服务器之间多次交互过程 ...

  4. Web安全测试学习笔记(Cookie&Session)

    一,Session:含义:有始有终的一系列动作\消息1, 隐含了“面向连接” 和“保持状态”两种含义2, 一种用来在客户端与服务器之间保持状态的解决方案3, 也指这种解决方案的存储结构“把××保存在s ...

  5. Django学习手册 - cookie / session

    cookie """ cookie属性: obj.set_cookie(key,value,....) obj.set_signed_cookie(key,value,s ...

  6. Servlet学习笔记(1)--第一个servlet&&三种状态对象(cookie,session,application)&&Servlet的生命周期

    servlet的404错误困扰了两天,各种方法都试过了,翻书逛论坛终于把问题解决了,写此博客来纪念自己的第一个servlet经历. 下面我会将自己的编写第一个servlet的详细过程提供给初学者,大神 ...

  7. node(4)express 框架 EJS模板,cookie, session的学习

    一.EJS 概述:前端咱们使用过的一个模板套路,是underscore的套路.接下来EJS它属于后台工程师人的模板. https://www.npmjs.com/package/ejs 官网地址 特点 ...

  8. Javaweb学习笔记5—Cookie&Session

    今天来讲javaweb的第五阶段学习. Cookie和Session同样是web开发常用到的地方. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的 ...

  9. Java web学习 Cookie&&Session

    cookie&&session 会话技术 从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话.会 话技术就是记录这次会话中客户端的状态与数据的. 会话技术分为Coo ...

随机推荐

  1. ajax返回后台编译时都对,返回error

    首先看看你的dataType:‘json’  类型是否与后台获取的类型一直.特别是json的格式对不对. 第二: 红括号里的有没有加

  2. SpringCloud微服务实战三:Hystix的基本概念

    1.说到隔离.熔断.降级,最出名的就是 Netflix 开源的 Hystrix 组件,Hystix官方对它描述为:Hystrix是一个延迟和容错库,旨在隔离远程系统.服务和第三方库,阻止级联故障,在复 ...

  3. python中的*args与**kwargs的含义与作用

    在定义函数的时候参数通常会使用 *args与**kwgs,形参与实参的区别不再赘述,我们来解释一下这两个的作用. *args是非关键字参数,用于元组,**kwargs是关键字参数 (字典)例如下面的代 ...

  4. Chapter 2 栈和队列

    Chapter 2 栈和队列 1-   栈 当n个元素以某顺序进栈,可在任意时刻出栈,元素排列的顺序N满足Catalan()规则: 常用操作: 1   栈的初始化和定义: 2   元素x进栈: 3   ...

  5. Luogu P1462 通往奥格瑞玛的道路(最短路+二分)

    P1462 通往奥格瑞玛的道路 题面 题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己 ...

  6. Leetcode199. Binary Tree Right Side View二叉树的右视图

    给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值. 示例: 输入: [1,2,3,null,5,null,4] 输出: [1, 3, 4] 解释: 先求深度,中 ...

  7. Leetcode89. Gray Code格雷编码

    给定一个代表编码总位数的非负整数 n,打印其格雷编码序列.格雷编码序列必须以 0 开头. 示例 1: 输入: 2 输出: [0,1,3,2] 解释: 00 - 0 01 - 1 11 - 3 10 - ...

  8. UVA11389 The Bus Driver Problem

        题意:有司机,下午路线,晚上路线各n个.给每个司机恰好分配一个下午路线和晚上路线.给出行驶每条路线的时间,如果司机开车时间超过d,则要付加班费d*r.问如何分配路线才能使加班费最少.   贪心 ...

  9. vue下使用nginx刷新页面404

    nginx 是一个代理的服务器.出现的问题:写好的页面通过nginx作为代理的服务器给别的同事看的时候发现了新写的页面打开就404,并且从其他页面跳转可以看到但是刷新页面就404.解决方法:在文件中的 ...

  10. jQuery控制导航条样式

    原理:点击当前元素时,当前元素添加(样式类),父辈的兄弟姐妹的孩子('a')去掉此样式类. 代码如下: /*次要导航*/ $(".subnav li a").click(funct ...