漫画 | 干掉session,爽死了!

《码农翻身》第一章 cs基础.xmind 我是一个线程 我是一个Java class Javascript: 一个屌丝的逆袭 Java:一个帝国的诞生 JSP:一个装配工的没落 TCP/IP 之 大明王朝的邮差 TCP/IP 之 大明内阁 TCP/IP 之 蓟辽督师 CPU 阿甘 CPU 阿甘之烦恼 CPU 阿甘:函数调用的秘密 我是一个网卡 我是一个路由器 我是一个进程 我是一块硬盘(上) 我是一块硬盘(下) 我是一个键盘 张大胖的socket 张大胖学递归 学习面向对象的令狐冲 张大胖学数据库 数据库村的旺财和小强 小李的数据库之旅(上) 小李的数据库之旅(下) 漫画:什么是机器学习 立即下载

三十年前,我找了一份好工作,生活很悠闲。

没错,我就是个HTTP服务器,我的创造者们对我很好, 他们制定的HTTP协议超级简单, 就是请求<--->响应。

我特别喜欢HTTP协议的无状态:

无状态是由业务决定的,30年前的Web 基本上就是文档的浏览而已, 既然是浏览,我作为一个服务器, 为什么要记住谁在一段时间里都浏览了什么文档呢?

可是好日子没持续多久,交互式的Web迅速兴起,论坛、购物、聊天等网站都要求我记住一个人的登录状态。

我没有办法,只好给每个登录的人造一个箱子,把每个应用想放的东西放进去

这个叫session的办法能区分开登录的用户,大家都很高兴。

可是,每个浏览器只需要保存自己的session id,而我需要保存所有人的session id ! 如果访问我的人多了, 就得有成千上万,甚至几十万个。

有些不着调的家伙还疯狂地往箱子里塞东西!

居然把庞大的购物车都放到session中。

这对我来说是一个巨大的开销 ,我不得不建了一座新房子

很快,麻烦来了

这样的事情越来越多,没办法,我只好做session的复制

后来,我遇到了一个叫做Redis的家伙,让我集中存储到他那里。

Redis的新方案虽然不错,但是增加了单点失败的可能性, 要是那个Redis的机器挂了,  所有人都得重新登录一遍, 估计得被人骂死。

我也尝试把这个单点的机器也搞出集群,增加可靠性, 但不管如何, 这小小的session 对我来说是一个沉重的负担。

但是让客户端去保留状态信息,有很大的安全漏洞,那些不怀好意的人可能伪造箱子。

关键点是验证,我得给这个箱子增加一点信息,证明是我创建的。

该怎么实现呢?Https这家伙给我支了一个招:

然后在把这个签名和之前的数据放到一起,形成一个叫Token 的东西。

我在服务器端不保存Token,当客户端把token发过来的时候,我再用同样的算法做一个验证就行了。

如果相同, 我就知道这个人已经登录过了,并且可以直接取到他的user id。  

如果不相同, 数据部分肯定被人篡改过,那我就不客气了。

从此以后,我再也不用维护那众多的箱子了,我又回到了最初的美好时光:无状态。

验证token增加了一点儿计算的开销,不过CPU阿甘那傻小子跑得飞快,这点儿计算对他来说不算什么。

不过,所有的事情都是双刃剑。

token很快就遇到了问题

过了一会儿,这个家伙又过来找我了

有了有效期,我就可以检查这个token是否过期了。

可是这小子很执拗,非要立即退出,非要在服务器端让Token立刻失效,有效期不行,气死我了。

被逼急了,我只好在墙上记了一个黑名单

看来,想在服务器端干掉session,干掉状态,几乎不可能啊!

更多精彩技术漫画,尽在码农翻身

遥感图像处理实战:DOTA数据集旋转框转YOLO格式全流程解析(附代码) 本文详细解析了将DOTA遥感数据集的旋转框标注转换为YOLO格式的全流程。针对遥感图像中物体朝向任意性的特点,文章重点阐述了将旋转框转换为外接水平框的数学原理与代码实现,并提供了批量转换脚本和可视化验证方法,帮助开发者高效处理数据,为基于YOLO的遥感目标检测项目奠定基础。 阅读详情

相关推荐

VMFS数据存储(datastore)丢失后恢复步骤

vmfs datastore恢复步骤

jetliu05的博客 3267

干掉状态:从session到token

1 美好的旧时光 我经常怀念三十年前那美好的旧时光,工作很轻松,生活很悠闲。 上班的时候偶尔有些HTTP的请求发到我这里,我简单的看一下,取出相对应的html文档,图片,发回去就可以了,然后就可以继续喝茶聊天。 我的创造者们对我很好, 他们制定的一个简单HTTP协议, 就是请求加响应, 尤其是我不用记住是谁刚刚发了HTTP请求, 每个请求对我来说都是全新的! 邮件服务

java的平凡之路 3594

基于DNN、CNN与SVM的串联电弧故障智能检测:从原理到嵌入式部署

在电气安全与工业物联网领域,时间序列分类是处理传感器信号、实现状态监测与故障诊断的核心技术。其原理在于从连续的信号数据中提取有效特征,并利用机器学习模型识别异常模式。这项技术的核心价值在于能够实现设备预测性维护、提升系统安全性并降低运维成本,广泛应用于智能电表、电机健康监测、电力设备保护等场景。本文聚焦于电气安全中的一个具体且危险的隐患——串联电弧故障的检测。针对这一隐蔽性强、传统方法误报率高的问题,项目深入实践了三种主流AI模型:深度神经网络、卷积神经网络和支持向量机。通过对比DNN的通用特征学习能力、C

weixin_31860973的博客 413

漫画:兄弟,今晚又得熬个通宵了!

后记:为了增加一点儿戏剧性,我给张大胖和何小瘦安排了一个悲惨的结尾,其实也不悲惨,他们俩拥有积极进取的心态,可以不断学习掌握新东西,并且能把事情做成,无论走到哪里都是有价值的人才。De...

码农翻身 1万+

《YOLOv8实例分割实战:训练自己的数据集 》(视频课程)

本课程将手把手地教大家使用labelme标注和使用YOLOv8训练自己的数据集,完成一个多目标实例分割实战项目。

bai666ai的博客 790

探索Three.js:利用ShaderMaterial实现动态着色器特效

本文深入探讨了Three.js中ShaderMaterial的应用,指导开发者利用GLSL编写自定义着色器实现动态特效。文章从核心概念GLSL、Uniforms与Attributes讲起,通过创建动态颜色变化平面的实战案例,逐步进阶到实现波纹扩散与动态光影等高级效果,并提供了性能优化与调试技巧,帮助读者掌握创建高性能WebGL视觉特效的关键技能。

weixin_29250403的博客 201

漫画:你们这些奇葩的代码!

后记:变量是写程序中司空见惯的东西,可是到了机器层面,一切都消失了,只剩下地址,地址,地址。所以CPU和内存非常疑惑,变量到底是什么东西?熟悉C语言的同学可能对漫画中的汇编有点疑惑,因为...

码农翻身 2万+

新年美食鉴赏——基于注意力机制CBAM的美食101分类

新年美食鉴赏——基于注意力机制CBAM的美食101分类一、数据预处理1.数据集介绍2.读取标签3.统一命名4.整理图片路径5.划分训练集与验证集6.定义美食数据集二、注意力机制1.简介2.卷积块注意力网络——CBAM通道注意力模块CAM空间注意力模块SAM3.将通道、空间注意力模块合并三、基于卷积块注意力模块的ResNet-CBAM1.代码实现2.模型测试3.查看网络结构4.模型训练5.模型预测四、总结与升华个人简介 春节是一年当中最隆重、最盛大的节日,吃得最好的一餐可能就是年夜饭了,想想就很激动呢!随着新

zbp_12138的博客 1万+

漫画:JavaScript咸鱼翻身记

更多精彩技术漫画,尽在码农翻身后记:本文想简单科普一下JavaScript那纷繁复杂的工具集合的由来,JavaScript诞生的时候,目标就是增加一些网页的互动性,根本没有想到后来的We...

码农翻身 4841

升降机SEW MOVIDRIVE变频器设置

选择PO1 第2,3,9,13 位,点击“SendPA”Start reference,编码器反馈值为0(PI2/3 Actual position=0)提示:传送参考位置前请断开变频器安全24V电源,否则会弹出禁止修改提示框;提示:做这一步时,如果出现电机不能转动,或产生报警不能通过编码器匹配。下载配置的参数,提示:下载参数需要断开变频器的安全24V电源。编码器匹配通过后点击下一步,进入下图画面传送参考位置。1电机不能转动:a可能是由于变频器的安全24V未给。点击2.SEW总线扩展定位,定位块设置。

xdpcxq的专栏 5397

【天工Godwork精品教程】天工3.1.7安装教程(附Godwork完整版下载地址)

本文讲解天工3.1.7安装过程(附Godwork完整版网盘下载地址)。 一、天工3.1.7安装教程 1. 安装GodWork-AT 3.1.7 2. 安装GodWork-AT 3.1.7补丁 3. 安装GodWork-EOS-Setup-2017B-1231 4. 安装GodWork-EOS补丁 5. 运行godwokr软件 6. 生成ZC码 7. 输入ZC码 8. eos插

智慧空间实验室 5283

http无状态之路

参考: 漫画 | 干掉session,爽死了!

FromZeroJiYuan的博客 157

基于MATLAB的变分模态分解(VMD)算法详解

变分模态分解(VMD)是一种先进的信号处理方法,通过变分框架将复杂信号分解为多个模态分量。相比传统经验模态分解(EMD),VMD具有坚实的数学基础,能有效抑制模态混叠和端点效应。其核心思想是将信号分解转化为约束优化问题,通过交替方向乘子法迭代求解各模态的中心频率和带宽。VMD在机械故障诊断、生物医学信号处理等领域展现出优越性能,尤其适合处理非平稳非线性信号。该算法通过严格的数学模型实现自适应频谱优化,为信号分析提供了更可靠的工具。

qq_42212808的博客 735

漫画:什么是中间人攻击

来自:梦见 (微信公众号: dreamsee321)作者:玻璃猫故事发生在上世纪40年代......在解放战争初期,东北牡丹江一带,奶头山有一个土匪副官叫栾平。他计划将包...

码农翻身 1490

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

漫画 | 历经40年,分布式通信太难了!

晚上11点,张大胖回到家中突然,周边的时空发生了奇怪的变化一座叫“分布式通信”的大楼出现在面前张大胖迟疑地进入了第一层的大厅rexec 是Unix上的一个命令,能够执行远程计算机上的程序...

码农翻身 826

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

漫画 | 程序员,你得一条道走到黑!

更多精彩技术漫画,尽在码农翻身后记:这篇文章中的老范、老李、老付、老王、老徐、老孔并不是我随意杜撰的,而是我身边的同学、朋友、同学、亲戚确实有这样的经历,我把这些不同的、丰富的经历改变了...

码农翻身 8753

【技术干货】老程序员亲绘漫画:1分钟读懂Session会话机制

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34019144的博客 253

码农翻身 各章节链接

大话编程 我是一个线程 我是一个Java class Javascript: 一个屌丝的逆袭 Java:一个帝国的诞生 JSP:一个装配工的没落 TCP/IP 之 大明王朝的邮差 TCP/IP 之 大明内阁 TCP/IP 之 蓟辽督师 CPU 阿甘 CPU 阿甘之烦恼 CPU 阿甘:函数调用的秘密 我是一个网卡 我是一个路由器 我是一个进程 我是一块硬盘(上) 我是...

wudinaniya的博客 4万+

漫画 | 程序员,你得学会踢皮球!

后记(凑字数):这篇文章吐槽一下流程给程序员带来的“伤害”, 在公司比较小的时候,通常不存在什么流程,公司变大以后流程不得不建立起来。我曾经在一个小外企带过,当时公司经营不善, 换了个...

码农翻身 1万+

我终于实现了前辈的梦想!

后记:这篇漫画想给大家分享的是虚拟化和容器历史,讲讲计算机如何给用户模拟出一个“小宇宙”出来,虚拟化是将底层的计算机资源抽象成为多组相互隔离的计算平台,每一个计算平台都具有计算机5大基本...

码农翻身 1360

漫画:从新手到老油条

后记:这是我很久之前看到的一个故事《三个程序员的寓言》,作者到底是谁我已经找不到了,知道的同学可以告知一下。故事讲了三种程序员在面对一个需求时处理问题的能力:1. 新手程序员经验不足,...

码农翻身 1万+

漫画 | 我把面试官搞崩溃了!

更多精彩技术漫画,尽在码农翻身后记:经过了技术面试的重重考验,面试官终于提出了这个拷问灵魂的问题:“你对我们公司或者这个岗位还有什么问题吗?”对于这个问题,你该回答呢?可能大多数人会...

码农翻身 4911

漫画:我才是世界上最好的编程语言!

周末的Hello World咖啡馆还是热闹非凡。后记 : 很多读者都说码农翻身的故事很有画面感,把我写的技术故事变成漫画形式,一直以来也是我的愿望,但是这种漫画不好画,...

码农翻身 1264

漫画 | 数字人民币究竟会颠覆谁?

后记:数字人民币到底是什么东西?我用我掌握的知识做了一个科普,它和支付宝、微信完全不同,不是相互替代的关系。这篇漫画没有提到一点就是数字人民币在底层是怎么实现的,比如它的底层技术是不...

码农翻身 2033

使用JSON Web Token设计单点登录系统--转

原文地址:https://leon_lizi.gitbooks.io/json-web-token/content/chapter2.html 用户认证八步走 所谓用户认证(Authentication),就是让用户登录,并且在接下来的一段时间内让用户访问网站时可以使用其账户,而不需要再次登录的机制。 小知识:可别把用户认证和用户授权(Authorization)搞混了。用户授...

332

漫画 | 再见!外包!

更多精彩技术漫画,尽在码农翻身后记(凑个字数):再把两种可以考虑的外包用文字说一下:给知名的IT公司或者外企做外包,可以增加你简历的含金量,因为这些公司即使是对外包人员的筛选,也会比一般...

码农翻身 1万+

Session销毁方式

问题:Session的销毁方式到底有哪些? Session,作为我们离不开的后台的技术,它的出现主要是为了解决 Http 协议的无状态特点,用于解决用户状态的存储问题,而往往对于存储来说都会涉及到一个时间问题,下面我们来看看它的销毁方式到底有哪些。 销毁的方式 默认时间到期 自己设定到期时间 立刻失效 关闭浏览器 关闭服务器 案例实操 默认时间到期 当客户端第一次请求 servlet 并且操作 session 时,session 对象生成,以 Tomcat 为例,Tomcat 中 session 默认的

weixin_50847753的博客 2375
上一篇: 漫画 | 数字人民币究竟会颠覆谁?
下一篇: 图解 | 你管这破玩意叫线程池?
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论 18
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值