老程序员亲绘漫画:1分钟读懂Session会话机制
说起前嗅是996中的一股清流,可是前嗅没火,大师和圆仔却一夜之间就火了?很多人纷纷留言,要看这俩人互怼、讲故事......
其实,程虚圆和宫成师的原型真的来源于前嗅,漫画的前身为公司的老程序员和小实习生。老程序员经验丰富,小实习生积极认真,老程序员为了尽快把“圆仔”领进门,开始大开脑洞亲绘漫画,讲解技术干货。
如大家所想看到的,俩人今天又开战了。
image大师:最近技术有进步吗?
圆仔(得意地嚼着小饼干):我上周看了前嗅的公众号《小心手里的“小饼干”,它可能泄露你的隐私》,知道了Cookie是啥。
image大师(削他):知道了Cookie就好意思上班吃饼干了?Session知道是啥意思不?
圆仔(举手):我英语四级没过,等我查查?
image大师(吐血):哈哈,小老弟。Session,在网络应用中,就是“会话控制”。
圆仔:哦,这就是你张狂的理由?
“Cookie可以分为会话缓存(session cookie)和持久缓存(persistent cookie)两种缓存模式”
大师:好吧,老哥给你详细讲讲为啥张狂。Session 主要是存储特定用户会话所需的属性及配置信息的文件。
圆仔:这不就和cookie一样了嘛?都是用来储存用户信息的。
大师:别急,其实它们之间还是有些区别的。cookie和session都是保存状态的方法,其主要差异在cookie用在客户端保存,Session通过服务器来存储的。我们可以把服务器和客户端浏览器的一系列动作称为一个Session,而Session是服务器端为客户端所开辟的存储空间,其中保存的信息就是为了保存状态。
圆仔:请原谅我的大脑像纸一样空白,我要回家好好用功了。
(圆仔学习归来,一副了然于胸的样子)
圆仔:对比起Cookie,Session 是存储在服务器端的会话,用户没办法修改Session的文件内容,相对会安全一些,并且不像 Cookie 那样有存储长度的限制。
大师:小老弟,可以啊。
圆仔:总的来说,Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中。Cookie是客户端保存用户信息的一种机制,用来记录用户的信息。
image圆仔:用比较标准的话说,就是Session文件的创建和使用都是在服务器端,浏览器没有权限获得session文件,浏览器只能通过获得的Session ID来发送“请求”获取相关信息。对于使用“浏览器”的你来说,这些都是不可见的。
大师:前嗅就是需要你这样有学习能力的小伙子!
image圆仔(陷入猖狂自恋状态):嘿嘿嘿,我还知道怎么快速的把Session清除掉,只要关掉页面,关闭浏览器,Session就直接在服务器端删除了。
大师:哼哼,你以为关网页关浏览器就行了?举个栗子吧。浏览网站相当于去逛超市的过程,区别就在于在逛网站这个“超市”之前,它会自动识别“身份信息”给你生成一张类似于“电子会员卡(Session)”的东西,它会在你逛超市的期间一直伴随着你。
圆仔:这个和Session有什么关系嘞?
大师:你想想,如果你不去主动注销“会员卡”的话,超市至少在“会员卡”有效期内肯定是不会主动帮你注销的,只有这张“会员卡”到有效期后自动失效。你的说法只是网上关于Session的一种误解,千万不要信以为真,哼哼。
大师:这回明白了吗,再来复述一遍吧,看看你到底都听懂了多少关于cookie和session之间的差别。
“Cookie是存放在用户的本地设备中,可以被解析进行cookie欺诈,同时还存在数量和内存上的限制。而session则是储存在服务器端,比较安全,但是会占用服务器性能,因此会存在一个失效期。”
最后,给大家推荐一个前端学习进阶内推交流群685910553(前端资料分享),不管你在地球哪个方位,
不管你参加工作几年都欢迎你的入驻!(群内会定期免费提供一些群主收藏的免费学习书籍资料以及整理好的面试题和答案文档!)
如果您对这个文章有任何异议,那么请在文章评论处写上你的评论。
如果您觉得这个文章有意思,那么请分享并转发,或者也可以关注一下表示您对我们文章的认可与鼓励。
愿大家都能在编程这条路,越走越远。