nodejs的koa中cookie和session的使用,cookie和session的区别
1.cookie是存储于访问者的计算机中的数据,用于同一浏览器访问同一域的时候共享数据
2.HTTP是无状态协议。也就是说:当你浏览了一个页面,然后跳转到同一个网站的另一个页面,服务器无法认识到这是同一个浏览器在访问同一个网站。每次的访问是没有关系的,也就是说服务器无法检测到这个状态
cookie特点:保存在客户端、用于同一浏览器访问同一个域的时候共享数据
作用,例如:
1.保存用户信息
2.浏览历史记录
3.10天免登录
正文开始
1.koa中设置cookie的值
1.设置cookie:
router.get('/', async (ctx, next) => {ctx.cookies.set("userInfo","gouzi",{maxAge:1000*60*60})await ctx.render('index', {title: 'Hello Koa 啊啊啊啊!'})
})
2.获取cookie:
let userInfo = ctx.cookies.get("userInfo");
设置cookie的第三个对象里面参数
3.存储值为汉字的cookie(nodejs的cookie是不支持直接存储汉字的)
先转化为buffer(let a = new Buffer(“张三”))
router.get('/', async (ctx, next) => {let name = new Buffer("狗子").toString('base64')ctx.cookies.set("userInfo",name,{maxAge:1000*60*60})
})
再转化为汉字字符串(.toString())
router.get('/test', async (ctx, next) => {//从ctx里面获取get传值,query是格式化之后的,querystring是字符串的console.log(ctx.query)let userInfo = ctx.cookies.get("userInfo");let name = new Buffer(userInfo,'base64').toString()console.log(name)//ctx里面的request对象是那一大串东西ctx.body = 'koa2 string'
})
2.koa session的使用(包名:koa-session):
session是基于cookie的原理
1.安装
npm install koa-session
2.引入
const session = require('koa-session')
3.配置中间件
app.keys = ['some secret hurr']; /* cookie的签名 默认的(不用管)*/const CONFIG = {key: 'koa:sess', /* 默认的cookie签名,默认的(不用管) */maxAge: 86400000,/* cookie的最大过期时间 */renew: true, /** cookie(session)快过期时自动重新设置*/rolling: false, /** 每次请求强行更新设置cookie(session),使他不过期 */httpOnly: true, /** 是否只有服务端能访问 */signed: true, /** 默认签名与否 */overwrite: true, /** 无效属性 */autoCommit: true, /** (boolean) automatically commit headers (default true) */};app.use(session(CONFIG, app));
4.使用
router.get('/login', function (ctx, next) {ctx.session.username="狗子" //设置sessionctx.body = '登陆成功'
})router.get('/buy', async (ctx, next)=> {console.log(ctx.session.username) //读取sessionctx.body = 'this is a users response!'
})
cookie和session的区别如下:
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
3、cookie 是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个WEB站点会话间持久的保持数据。
4、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
5、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
6、session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。 Session其实是利用Cookie进行信息处理的,当用户首先进行了请求后,服务端就在用户浏览器上创建了一个Cookie,当这个Session结束时,其实就是意味着这个Cookie就过期了。
注:为这个用户创建的Cookie的名称是aspsessionid。这个Cookie的唯一目的就是为每一个用户提供不同的身份认证。
7、cookie和session的共同之处在于:cookie和session都是用来跟踪浏览器用户身份的会话方式。
如果客户端浏览器将Cookie功能禁用,或者不支持Cookie怎么办?
例如,绝大多数的手机浏览器都不支持Cookie。Java Web提供了另一种解决方案:URL地址重写。
URL地址重写是对客户端不支持Cookie的解决方案。URL地址重写的原理是将该用户Session的id信息重写到URL地址中。服务器能够解析重写后的URL获取Session的id。这样即使客户端不支持Cookie,也可以使用Session来记录用户状态。HttpServletResponse类提供了encodeURL(String url)实现URL地址重写,该方法会自动判断客户端是否支持Cookie。如果客户端支持Cookie,会将URL原封不动地输出来。如果客户端不支持Cookie,则会将用户Session的id重写到URL中。
使用cookie和session的具体场景
一般来说,登陆验证信息,客户的私人信息,如姓名,电话等,应该放在Session中.Cookie则用于用户登陆网站时的自动登陆以及类似"购物车"的处理.使用Cookie保存信息时最好通过加密形式来保存数据,同时是否保存登陆信息,需要由用户自行选择
nodejs的koa中cookie和session的使用,cookie和session的区别相关推荐
- koa中使用cookie 和session
在koa中使用cookie app.keys = ['im a newer secret'] //设置签名的 Cookie 密钥. // 设置cookie app.use(async ctx => ...
- ASP.NET中实现页面间的参数传递 QueryString\Application\Session\Cookie
一.使用QueryString 使用QueryString在页面间传递值是一种非常常见的方法,我们在ASP中就常常用到. (1)优点和缺点 优点: 1.使用简单,对于安全性要求不高时传 ...
- asp.net 获取客户端cookie_开发中你一定碰到过的cookie和session问题,今天一并帮你解决!...
一.会话的概念 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 二.会话过程中要解决的一些问题 每个用户在使用浏览器与服务器进行 ...
- Flask 框架中 上下文基础理念,包括cookie,session存储方法,requset属性,current_app模块和g模块...
Flask中上下文,分为请求上下文和应用上下文.既状态留存 ,就是把变量存在某一个地方可以调用 请求上下文:实际就是request和session用法理念,既都是可以存储东西. 应用上下文:既变量共享 ...
- HTML用cookie实现自动登录,用cookie实现websocket自动登录,session状态保留。
原标题:用cookie实现websocket自动登录,session状态保留. 会话状态的保留,即登录状态保持,是很常见.很常用的功能. 本文将介绍,在NodeJS开发中,如何实现websocket连 ...
- Go 语言 Session机制和 Cookie机制
一.会话机制 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie 通过在客户端记录信息确定用户身份,Sessio ...
- 设置cookie存活时间_Django之cookie、session、token
客户端会话技术:cookie 服务端会话技术:session 自定义会话技术:token 一.cookie cookie本身由服务器端生成,通过Response将cookie写到浏览器上,下一次再次访 ...
- 【学习笔记】cookie、session、token和分布式session
文章目录 cookie和Session session和token cookie和token总结 分布式Session cookie和Session 为什么要有session的出现? 答:是由于网络中 ...
- Cookie和Session-学习笔记04【Session之验证码案例】
Java后端 学习路线 笔记汇总表[黑马程序员] Cookie和Session-学习笔记01[Cookie_快速入门.Cookie_细节] Cookie和Session-学习笔记02[Cookie案例 ...
最新文章
- 关于echars中雷达图的一些配置
- atitit.微信支付的教程文档 attilax总结
- unity如何让物体与特定物体之间不发生碰撞
- linux内核等价多路径路由,Linux内核分析 - 网络[四]:路由表
- 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 4丨员工薪水中位数【难度困难】
- Jquery表单验证 只能输入数字,
- cvf命令报错 linux,linux命令大全
- 第2章 业务:数据驱动运营
- cad2006安装计算机中没有cad,CAD2006如何安装?AutoCAD2006安装教程图解
- 法大大完成3.98亿元C轮融资,虎环球基金和腾讯联合领投...
- 《稀缺》塞德希尔·穆来纳森 / 埃尔德·沙菲尔
- Cool Edit Pro 2.0 Resample.xfm
- 翁恺老师C语言程序设计网课(THE END)
- chrom如何兼容本地file文件
- 56岁才创业, 如今年利润却是华为1.6倍
- 关于列表,网格显示一律使用RV
- 瑞芯微RK3399主板开发,RK3399芯片设计参数分析
- 【】oracle 11g 新特性
- MYC归来(2)第三次测试
- Chatgpt这么智能,以后会不会取代掉人类?
热门文章
- Sharpmap AjaxMapControl 分析
- UVA11764 Jumping Mario【Ad Hoc】
- Spring 各种注解(@)的含义与认识
- 网络基石 —— ADSL
- 英文的写作 —— 词汇的积累(环境的描写、写人)
- Trick(十)——any/all 实现
- C基础——文本格式和二进制格式的区别
- C++11::lambda 的用法
- 武春岭 《C语言程序设计》教案PPT,重庆出版社出版,李勇主编的大一C语言课程ppt第1章.ppt...
- html让页面两边都留点空位,标记语言——CSS布局_HTML/Xhtml_网页制作