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

杰深的个人 2019-07-01

昨日说起前嗅是996中的一股清流,可是前嗅没火,大师和圆仔却一夜之间就火了?很多人纷纷留言,要看这俩人互怼、讲故事......
其实,程虚圆和宫成师的原型真的来源于前嗅,漫画的前身为公司的老程序员和小实习生。老程序员经验丰富,小实习生积极认真,老程序员为了尽快把“圆仔”领进门,开始大开脑洞亲绘漫画,讲解技术干货。
如大家所想看到的,俩人今天又开战了。
【技术干货】老程序员亲绘漫画:1分钟读懂Session会话机制
大师:最近技术有进步吗?
圆仔(得意地嚼着小饼干):我上周看了前嗅的公众号《小心手里的“小饼干”,它可能泄露你的隐私》,知道了Cookie是啥。
【技术干货】老程序员亲绘漫画:1分钟读懂Session会话机制
大师(削他):知道了Cookie就好意思上班吃饼干了?Session知道是啥意思不?
圆仔(举手):我英语四级没过,等我查查?
【技术干货】老程序员亲绘漫画:1分钟读懂Session会话机制
大师(吐血):哈哈,小老弟。Session,在网络应用中,就是“会话控制”。
圆仔:哦,这就是你张狂的理由?

“Cookie可以分为会话缓存(session cookie)和持久缓存(persistent cookie)两种缓存模式”

大师:好吧,老哥给你详细讲讲为啥张狂。Session 主要是存储特定用户会话所需的属性及配置信息的文件。
圆仔:这不就和cookie一样了嘛?都是用来储存用户信息的。
大师:别急,其实它们之间还是有些区别的。cookie和session都是保存状态的方法,其主要差异在cookie用在客户端保存,Session通过服务器来存储的。我们可以把服务器和客户端浏览器的一系列动作称为一个Session,而Session是服务器端为客户端所开辟的存储空间,其中保存的信息就是为了保存状态。
圆仔:请原谅我的大脑像纸一样空白,我要回家好好用功了。
(圆仔学习归来,一副了然于胸的样子)
圆仔:对比起Cookie,Session 是存储在服务器端的会话,用户没办法修改Session的文件内容,相对会安全一些,并且不像 Cookie 那样有存储长度的限制。
大师:小老弟,可以啊。
圆仔:总的来说,Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中。Cookie是客户端保存用户信息的一种机制,用来记录用户的信息。【技术干货】老程序员亲绘漫画:1分钟读懂Session会话机制

圆仔:用比较标准的话说,就是Session文件的创建和使用都是在服务器端,浏览器没有权限获得session文件,浏览器只能通过获得的Session ID来发送“请求”获取相关信息。对于使用“浏览器”的你来说,这些都是不可见的。
大师:前嗅就是需要你这样有学习能力的小伙子!
【技术干货】老程序员亲绘漫画:1分钟读懂Session会话机制
圆仔(陷入猖狂自恋状态):嘿嘿嘿,我还知道怎么快速的把Session清除掉,只要关掉页面,关闭浏览器,Session就直接在服务器端删除了。
大师:哼哼,你以为关网页关浏览器就行了?举个栗子吧。浏览网站相当于去逛超市的过程,区别就在于在逛网站这个“超市”之前,它会自动识别“身份信息”给你生成一张类似于“电子会员卡(Session)”的东西,它会在你逛超市的期间一直伴随着你。
圆仔:这个和Session有什么关系嘞?
大师:你想想,如果你不去主动注销“会员卡”的话,超市至少在“会员卡”有效期内肯定是不会主动帮你注销的,只有这张“会员卡”到有效期后自动失效。你的说法只是网上关于Session的一种误解,千万不要信以为真,哼哼。

大师:这回明白了吗,再来复述一遍吧,看看你到底都听懂了多少关于cookie和session之间的差别。
“Cookie是存放在用户的本地设备中,可以被解析进行cookie欺诈,同时还存在数量和内存上的限制。而session则是储存在服务器端,比较安全,但是会占用服务器性能,因此会存在一个失效期。”

相关推荐

LetonLIU / 0评论 2020-05-29