面试和工做中有时候碰到cookie和session的同异,如今小结以下:
首先看cookie
cookie增删改查:http://www.w3school.com.cn/js...node
识别用户:用来客户端和服务器端进行会话面试
//使用cookie必需要使用cookie-parser中间件 var cookieParser = require('cookie-parser'); app.use(cookieParser()); express中的cookie: res负责设置cookie, req负责识别cookie。 cookie用来制做记录用户的一些信息,如购买历史、猜你喜欢、访问量等
如今看sessionchrome
因为cookie明文等一些不足因此产生了session
session依赖cookie,就是利用cookie,实现的“会话”,所以当cookie被禁用,session也没法使用。
session比cookie不同在哪里呢? session会下发一个秘钥(cookie)(乱码),客户端每次访问都携带这个秘钥,那么服务器若是发现这个秘钥吻合,就可以显示这个用户曾经保存的信息。
任何语言中,session的使用,是“机理透明”的,也就是让你感受不到这事儿和cookie有关express
session是加密的浏览器
var session = reqiure("express-session"); app.use(session({ ..一些配置 })); app.get("/",function(req,res){ console.log(req.sission.login); }); app.get("/login",function(req,res){ req.session.login = "1"; }); 都是req对象
Session存在于服务器的内存中,若是服务器重启就会丢失session同时须要从新登陆缓存
4.单个cookie保存的数据不能超过4K,若是cookie的内容超过4K的话,那么调用的时候就会返回一个空的字符串;session的密钥(cookie),能够对应无限大的数据安全