Session 和 Cookie 的数据结构示例

news/2024/9/19 8:10:26/ 标签: 数据结构

当然,我理解您希望在流程图中也展示相关的数据结构。我将在流程图中添加 Session 和 Cookie 的数据结构示例。为了保持图表的清晰度,我会使用注释框来展示这些数据结构

后续请求流程
请求中包含Cookie(含Session ID)
用户发送新请求
服务器提取Session ID
查找对应的Session
使用Session中的用户信息处理请求
返回响应给用户
开始用户登录
用户输入用户名和密码
发送登录请求到服务器
服务器验证用户名和密码
验证是否成功?
创建新的Session
返回错误信息
生成Session ID
存储用户信息到Session
创建包含Session ID的Cookie
发送响应(包含Set-Cookie头)
结束登录流程
Session数据结构: { sessionId: 'uniqueSessionIdentifier123', userData: { userId: 'user123', username: 'johndoe', email: 'john@example.com', isLoggedIn: true, lastLoginTime: '2024-09-11T19:30:00Z' }, creationTime: '2024-09-11T19:30:00Z', lastAccessedTime: '2024-09-11T19:35:00Z', expirationTime: '2024-09-11T20:00:00Z' }
Cookie数据结构: Set-Cookie: JSESSIONID=uniqueSessionIdentifier123; Path=/; HttpOnly; Secure

在这个更新后的版本中:

  1. 保留了原有的登录流程和后续请求流程的结构。

  2. 添加了两个注释框来展示数据结构

    • Session 数据结构:连接到 “存储用户信息到Session” 步骤。
    • Cookie 数据结构:连接到 “创建包含Session ID的Cookie” 步骤。
  3. 使用 Mermaid 的样式功能为注释框添加了不同的背景颜色和边框,以便更容易区分。

  4. 数据结构以 JSON 格式(对于 Session)和 HTTP 头格式(对于 Cookie)呈现,以便清楚地展示它们的结构和内容。

这个修改后的图表不仅展示了登录和后续请求的流程,还直观地显示了在这个过程中创建和使用的关键数据结构。这有助于更全面地理解整个过程,包括数据是如何存储和传输的。

请注意,由于 Mermaid 图表中的空间限制,数据结构可能会显得有些拥挤。在实际渲染时,您可能需要调整图表大小或布局以获得最佳的可读性。如果您需要进一步的调整或有任何其他要求,请随时告诉我。


http://www.ppmy.cn/news/1526494.html

相关文章

湖仓一体-Paimon篇-简介

什么是Paimon? 2021年末,Flink官方提出打造一个全新的存储 Flink Table Store,一个 Flink 完全内置的存储。 为了让 Flink Table Store 能够有更大的发展,Flink PMC经过讨论决定将其捐赠Apache进行独立孵化。 2023 年 3 月 12 日…

Android 源码多个Launcher设置默认Launcher

目录 第一部分、android10之前 一.多个launcher 启动设置默认launcher的核心类 二 在自定义服务里面设置默认Launcher 第二部分、android10之后 一、Launcher应用内置并设置为默认Launcher 1.通过ResolverActivity.java设置为默认Launcher 改法一: 改法二&am…

Python——俄罗斯方块

俄罗斯方块游戏是一款经典的益智游戏,通常使用编程语言Python来实现。下面是一个简单的俄罗斯方块游戏的示例代码: import pygame import random# 定义颜色 BLACK (0, 0, 0) WHITE (255, 255, 255) RED (255, 0, 0) GREEN (0, 255, 0) BLUE (0, 0,…

Linux:进程(一)

目录 一、概念的理解 二、指令(1) 一、概念的理解 在许多地方对进程的定义都是这样的一句话:加载到内存中的程序、正在运行的程序、进程可以排队 而要真正理解进程是什么,这一句话的解释远远不够。 在定义进程之前,先…

CSS传统布局方法(补充)——WEB开发系列37

开发技术不断演进,布局方式也经历了多个阶段的变革。从最初的基于表格布局到 CSS 的浮动布局,再到今天的弹性盒(Flexbox)与 CSS Grid 网格布局,每一种布局方式都有其独特的背景和解决特定问题的优势。 一、CSS Grid 出…

2024 RSTCONCTF re 部分wp

Unknown Architect DIE查看,RISC_V架构,直接交即可 Duke of the Kingdom 附件拖入jadx 比较简单。脚本 Keypad 附件拖入ida。一共四遍check,都比较简单 Pico-Cypher 文本编辑器打开附件 稍微问一问gpt,得知这是micropython&#x…

春意盎然:SpringBoot在线教育平台设计

第五章 系统实现 5.1用户功能模块 用户点击进入到系统操作界面,可以对首页、个人中心、课程信息管理、我的收藏管理、订单管理等功能模块,个人信息:通过列表可以获取账号、密码、姓名、性别、手机、邮箱、照片、备注并进行修改操作&#xff…

FPGA 学习仿真硬件设计

- 封装常用的testbench,使用task或function进行代码封装,以便下次灵活调用。 - 当待测试文件中存在双向信号(inout)时,需要使用reg变量表示输入和wire变量表示输出。 - 尽量避免单个initial语句过于复杂,可以分开写成多个initia…

秒验HarmonyOS NEXT集成指南

开发工具:DevEco Studio 集成方式:在线集成 HarmonyOS API支持:> 12 集成前准备 注册账号 使用MobSDK之前,需要先在MobTech官网注册开发者账号,并获取MobTech提供的AppKey和AppSecret,详情可以点击查看…

基于小程序的教学辅助微信小程序设计+ssm(lw+演示+源码+运行)

教学辅助微信小程序 摘 要 随着移动应用技术的发展,越来越多的学生借助于移动手机、电脑完成生活中的事务,许多的传统行业也更加重视与互联网的结合,由于学生学习的压力越来越大,教学辅助是一个非常不错的教育平台,对…

HOT 100(七)栈、堆、贪心算法

一、栈 1、每日温度 使用单调递减栈来解决。主要思路是遍历temperatures数组,利用栈来存储还没有找到比当前温度高的天数的索引。当遇到比栈顶索引所对应温度更高的温度时,就可以确定当前这一天的温度比之前那一天高。索引的差值就是等待的天数。 求一…

DFS算法专题(四)——综合练习【含矩阵回溯】【含3道力扣困难级别算法题】

目录 1、字母大小写全排列 1.1 算法原理 1.2 算法代码 2、优美的排列 2.1 算法原理 2.2 算法代码 3、N皇后【困难】★★★ 3.1 算法原理 3.2 算法代码 4、有效的数独【解数独铺垫】 4.1 算法原理 4.2 算法代码 5、解数独【困难】★★★ 5.1 算法原理 5.2 算法代码…

vue原理分析(十四)研究new Vue()中的 initProvide

在Vue.prototype._init 中有一些init函数,今天我们来研究这些init函数 Vue.prototype._init function (options) {......{initProxy(vm);}......initLifecycle(vm);initEvents(vm);initRender(vm);callHook$1(vm, beforeCreate, undefined, false /* setContext *…

【软件测试面试题】WEB功能测试(持续更新)

Hi,大家好。最近很多朋友都在说今年的互联网行情不好,面试很难,不知道怎么复习,我最近总结了一份在软件测试面试中比较常见的WEB功能测试面试面试题合集,希望对大家有帮助。 建议点赞收藏再阅读,防止丢失&…

uView使用心得

说实话我不爱用这个库,感觉很鸡肋,坑很多,可能没用习惯 picker选择器 绑定默认值是通过设置index,并且这个index需要通过api设置进去,设置defalutindex绑定值无效(只有初始化可以,后面动态改变…

uni-app 应用名称 跟随系统语言 改变

官方已确认BUG::https://ask.dcloud.net.cn/question/164804 { "name" : "%app.name%",//这里随便写,配置了 locales,name 就不生效了 "appid" : "", "description" : "", "versi…

虚幻引擎 | (类恐鬼症)玩家和NPC语音聊天(下)

上下文Conversation Array 要让GPT记住上下文,实现GPT4里的连续对话功能,需要把以下内容存入conversation array中去。 NPC background storyuser input promptNPC anwser open AI API的JsonObject JSONObject是一种数据结构,可以理解为JSO…

【Linux 20】进程控制

文章目录 🌈 一、创建线程⭐ 1. 线程创建函数⭐ 3. 给线程传参⭐ 4. 创建多线程⭐ 5. 获取线程 ID 🌈 二、终止线程⭐1. 使用 return 终止线程⭐ 2. 使用 pthread_exit 函数终止线程⭐ 3. 使用 pthread_cancel 函数终止线程 🌈 三、等待线程⭐…

企微无限群发:精准营销与合规边界的探索

在数字化营销日益成熟的今天,企业微信(简称“企微”)作为连接企业与客户的重要桥梁,其强大的群发功能成为了众多企业推广产品、传递信息、增强客户粘性的首选工具。然而,“企微无限群发”这一概念,在实际操…

2024.9.11(k8s环境搭建)

一、k8s环境搭建 编号主机名称ip配置1k8s-master192.168.8.1772k8s-node1192.168.8.1783k8s-node2192.168.8.168 1、免密登录 [rootk8s-master ~]# ssh-keygen [rootk8s-master ~]# ssh-copy-id root192.168.8.178 [rootk8s-master ~]# ssh-copy-id root192.168.8.168 2、3台…