本文转自「开发者圆桌」一个10年老猿原创文章传播开发经验,尤其适合初学者或刚入职场前几年程序猿的微信公众号。
什么是Session?
Session在计算机中,尤其是在Web应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。
当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的登录信息。例如,你一旦登录成功,则可以在Web应用的所有页面中看到自己的用户信息。
我的疑惑
既然Session是有别于Cookie的一种全新的HTTP状态保持解决方案,那么为什么Session有时还要用到Cookie呢?
之前一直有这样的疑问,只是平时工作太忙(其实,想想也是借口,时间挤挤还是有的嘛),也就似懂非懂的放过去了,今天特意重新研究了一下Session的机制和原理,终于解开了我的疑惑,下面把整理的导图分享出来,希望可以帮助更多人更好的理解Web应用中的Session。
如果面试官要问你什么是Session,我觉得你可以把下面这张思维导图中的内容讲给他听,一定可以顺利过关。
导图内容概要
本节“1.session的前世今生”,从HTTP协议与状态保持说起,分别比较了Session与Cookie的区别,通过对SessionID传递方案的梳理进一步加深了Session的理解,最后通过几个思考题,点出了下一节关于“session一致性”的主题。
Session相关思维导图原文件以及Xmind这款思维导图软件,已经分享到百度网盘,欢迎下载使用,也可以通过左下角的「阅读原文」直接跳转,网盘地址:https://pan.baidu.com/s/1eR2oWJS