前端面试必考题
2018-12-07 本文已影响0人
OrangeQjt
1.cookie和session的区别:
共同点:都是用来存储数据的;
不同点:
cookie:
1.>cookie存在客户端的;
2.>安全性不高,别人可以分析存放在本地的cookie并进行cookie欺骗;
3.>存储空间有限,只有4k;
session:
1.>存储在服务器端;
2.>安全性高;
3.>存储空间大,存储数据过多,响应就慢了;
可以将登录信息等重要信息,存放在session中;其他信息如需保留,可存放在cookie中;
2.cookie:(12-5)
A.发送cookie:先创建服务器
cookie-send.js
const express=require('express');
var server=express();
//
server.use('/aaa/a.html',function(req,res){
//服务器给客户端发送cookie
res.cookie('uname','jack',{path:'/aaa',maxAge:30*24*60*60*1000})//k,v maxAge:毫秒
res.send('ok');
})
server.listen(8080);
B.获取cookie
需要借助中间件cookie-parser
第一步:下载cookie-parser cnpm install cookie-parser
cookie-parser.js
const express=require('express');
//引入cookie-parser
const cookieParser=require('cookie-parser');
var server=express();
server.use(cookieParser());
server.use('/aaa/a.html',function(req,res){
console.log(req.cookies);
res.send('ok');
})
server.listen(8080);
C.给cookie加密:设置秘钥,签名
const express=require('express');
const cookieParser=require('cookie-parser');
var server=express();
server.use(cookieParser());
server.use('/aaa/a.html',function(req,res){
//设置一个秘钥
req.secret='nnbvmbn';
res.cookie('user','lily',{signed:true});
res.send('ok');
})
server.listen(8080);
D.清除cookie
const express=require('express');
const cookieParser=require('cookie-parser');
var server=express();
server.use(cookieParser());
server.use('/aaa/a.html',function(req,res){
res.clearCookie('user');
res.send('ok');
})
server.listen(8080);
3.session:(12-6)
下载中间件:cookie-session:cnpm install cookie-session;
//1.搭建一个服务器
const express=require('express');
const cookieParse=require('cookie-parser');
const cookieSession=require('cookie-session');
var server=express();
server.use(cookieParse());
server.use(cookieSession({
keys:['aaa','bbb','ccc']
}));
server.use('/',function(req,res){
console.log(req.session);
res.send('ok');
})
server.listen(8080);