Cookie介绍服务端操作cookie

news/2024/5/18 16:39:39 标签: nodejs, 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')

http://www.niftyadmin.cn/n/1440528.html

相关文章

新一代的无线通信技术(转)

[摘要] 软件无线电 (softwareradio)是近几年提出的一种实现无线通信的新体制 ,是无线通信领域的一次重大变革。文章论述了…

Windows地址空间

虚拟地址空间    ​ 当处理器读取或写入存储器位置时,它使用虚拟地址。作为读或写操作的一部分,处理器将虚拟地址转换为物理地址。通过虚拟地址访问内存具有以下优势:    程序可以使用连续范围的虚拟地址来访问在物理内存中不连续的大…

资深网管教你两步走对付DdoS攻击(转)

不知道身为网络管理员的你是否遇到过服务器因为拒绝服务攻击都瘫痪的情况呢?就网络安全而言目前最让人担心和害怕的入侵攻击就要算是拒绝服务攻击了。他和传统的攻击不同,采取的是仿真多个客户端来连接服务器,造成服务器无法完成如此多的客户…

java复习(Other)

(day2) 1.数据类型转换 boolean 不参与数据类型转换 1) 自动数据类型转换 范围大的数据 变量 范围小的数据; 2)强制数据类型转化 小的数据类型 变量 (小的) 变量; (没有要求,不要做,会丢失数据) (day4) JVM对内存的操作过程 1.JVM向系统申请内存,JVM对申请到的内存进行了划…

Oracle内存结构(三)----Process Memory的详细信息(转)

The Process Memory:除了SGA(System Global Area)之外,Oracle进程还使用下面三个全局区:The Process Global Area (PGA)The User Global Area (UGA)The Call Global Area (CGA)很多人都搞不清楚PGA和UGA两者之间的区别,实际上两者之间的区别跟一个进程和一个会话之间的区别是类…

2017 Python最新面试题及答案16道题

2017 Python最新面试题及答案16道题 https://www.cnblogs.com/tom-gao/p/6645859.html转载于:https://www.cnblogs.com/stono/p/9678720.html

在Koa2中操作cookie

index-cookie.js(test3)中原有代码如下 // Koa2操作cookieconst Koa require(koa); const app new Koa();app.use(async (ctx) > {ctx.body cookie test by koa2 })app.listen(3000)设置cookie app.use(async (ctx) > {ctx.body cookie test…

隔墙有耳 Linux系统下的网络监听技术(转)

前言:在网络中,当信息进行传播的时候,可以利用工具,将网络接口设置在监听的模式,便可将网络中正在传播的信息截获或者捕获到,从而进行攻击。网络监听在网络中的任何一个位置模式下都可实施进行。而黑客一般都是利用网络…