前端面试必考题

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);
上一篇下一篇

猜你喜欢

热点阅读