Cookie介绍&&服务端操作cookie

  1. Cookie是什么?
    存储在浏览器的一段字符串,最大5kb
    每个域都可有一个cookie,跨域不共享
    格式如:k1=v1;k2=v2;k3=v3;(可结构化)
  2. cookie会随着http请求传递给服务端
    服务端可修改cookie,再返回给前端
    默认情况下跨域不可传递cookie
  3. 服务端操作cookie之设置cookie
    1. 在cookie-index.js中有一下代码
// 服务端操作cookie
const http = require('http');
const server = http.createServer((req, res)=> {
    // 设置cookie
    res.setHeader('Set-Cookie', 'a=100')
    res.end('cookie test')
})

server.listen(3000);
console.log('server listen on 3000 port')
2)在控制台中执行`node index-cookie.js`
3) 浏览器访问'localhost:3000',在network中查看response

在这里插入图片描述

在这里插入图片描述

4)第二次再刷新后,可以在request header中看到上面设置的cookie
在这里插入图片描述

  1. 服务端操作cookie之获取cookie
// 获取cookie
    console.log('cookie is', req.headers.cookie)

在这里插入图片描述
5. 结构化cookie

// 结构化cookie
    // cookieStr: 'a=100; b=200'==>{a: '100', b: '200'}
    const cookieObj = {};
    cookieStr.split(';').forEach(cookieItemStr => {
        const arr = cookieItemStr.trim().split('=')
        const key = arr[0];
        const val = arr[1];
        cookieObj[key] = val
    })
    console.log('cookie obj is', cookieObj);

在这里插入图片描述
完整代码:index-cookie.js中

// 服务端操作cookie
const http = require('http');
const server = http.createServer((req, res)=> {
    // 设置cookie
    res.setHeader('Set-Cookie', 'b=200')
    // 获取cookie
    const cookieStr = req.headers.cookie;
    console.log('cookie is', cookieStr)
    res.end('cookie test')
    // 结构化cookie
    // cookieStr: 'a=100; b=200'==>{a: '100', b: '200'}
    const cookieObj = {};
    cookieStr.split(';').forEach(cookieItemStr => {
        const arr = cookieItemStr.trim().split('=')
        const key = arr[0];
        const val = arr[1];
        cookieObj[key] = val
    })
    console.log('cookie obj is', cookieObj);
})

server.listen(3000);
console.log('server listen on 3000 port')
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值