会话管理和控制
这节我们学习的是会话管理和控制,首先要知道的当然是什么是会话了。
会话,通过字面意思理解就是两个人通话和交流的一个过程。
浏览器打开一个网站,和网站的服务器交互。是两台电脑间的交流。因此,我们也可以更加拟人一些,认为是两个设备间的会话。
不过特殊的是,因为浏览器是电脑里面的一个软件,这个软件没有长相,没有声音,没身份证......我们不知道到底是谁访问了这个网站。
如果只认IP的话,我们在一个公司,家里IP都是一样的。可能一个IP对应多个电脑。或者是用着用着换了IP,如果用IP来识别用户的唯一身份的话肯定不现实。
其实我们人类社会的思维模式,已经解决了这个问题。我跟大家讲两个关于开会的故事:
在几十年前人们开会的时候,都需要带上一个参会证。这个参会证上有这个人的职务、姓名、单位、照片等信息。在开会的时候,会议安保人员、组织者只需要检查相关信息就行了。
几十年后,越来越先进了。你参会前,跟你发一个卡片或者工牌。这个工牌,有一个唯一的号码。拿到号码,再用摄像头自动拍一张你的照片就完成了入场的对比工作。
在电脑里面也有这两种验证方式:
人们在参会证上带上了所有的相关信息的这种会话方式我们叫做cookie。这种模式,信息是保存在用户电脑上的。
人们只需要带一个号码或者磁卡,通过这个信息去验证你的照片、姓名等信息的模式我们叫做session。它只在用户本地存一组小小的值,其他信息全是存在服务器上的。
用专业一点的语言来解释:
HTTP协议是无状态的。何谓无状态?你输入我的网址,我就给你传送数据。我可不管你是金三胖,安倍或者是奥巴马呢。
而我们在现实情况中,往往大家登陆后就知道大家是谁了。这两种方式是HTTP协议中的:
- cookie会话技术
- session会话技术