cookie和session

cookie和session

  • cookie

    http协议是一个无状态协议,在浏览器同一个域名的不同页面,需要重复登录,因为浏览器不认识你

    • express 中的cookie
      • 下载 cookie-parser
        npm i --save-dev cookie-parser
      
      • 引入cookie-parser并启用cookieparser
        const cookieparser=require('cookie-parser');
        app.use(cookieparser());
        
      
    • 设置 cookie
        res.cookie('名','值',{maxAge:'最长存活时间',httpOnly:true}) 
      
    • express中 cookie获取
      req.cookies.名字
      
    • 具体例子
      const express = require("express");
      const app = express();
      const cookieparser = require("cookie-parser");
      app.use(cookieparser());
      //设置cookie
      //let mudidiAry = [];
      app.get('/gonglue', (req, res) => {
        let mudidi = req.query.mudidi;
        let mudidiAry = req.cookies.mudidi || [];
        mudidiAry.push(mudidi);
        res.cookie('mudidi', mudidiAry);
        res.send(`我的目地地是"${mudidi}"`)
      });
      //取cookie
      app.get('/', (req, res) => {
        let liks = req.cookies.mudidi;
        res.send(`我可能想去的地方有"${liks}"`)
      });
      app.listen(8080);
    

    浏览器展示情况:
    图一: 当我请求http://localhost:8080/gonglue?mudidi=北京;并且
    mudidi分别设置为 mudidi=上海,mudidi=成都的值的时候,都会存入cookie中
    图二:从cookie取出存入的值

cookie和session_第1张图片
image.png
cookie和session_第2张图片
image.png
  • cookie 的缺点
    • 不加密,可以自由的看到
    • 用户可以删除,或者禁用它
    • 可以篡改
    • 存储量小,可以被localStorage替代
  • cookie 的缺点
    • 不加密,可以自由的看到
    • 用户可以删除,或者禁用它
    • 可以篡改
    • 存储量小,可以被localStorage替代
  • session 的缺点
    • 设置session
        req.session.xxx=xxx
      
    • 设置session
        req.session.xxx
      
  • cookie和session 的区别
    - cookie是明码,session是乱码
    - cookie还存在浏览器端,session存在服务器端
    - cookie内存小,session内存大

你可能感兴趣的:(cookie和session)