可以把session看成在深圳的边防证通行证。
首先要创建一个新的的通行证来标记一个用户,并生成一个sessionid存放到临时cookie里,sessionid 一般是根据当前的系统的时间等相关信息生成的一个随机字符串,很难有重复,特别是在比较短的一段时间里,更基本不可能重复。
然后用户每次用户在向服务器请求的时候,sessionid都会通过临时cookie交给服务器,服务器以sessionid来检索存放在服务器端的session信息。再进行判断和相关处理。
在用户关闭浏览器或者其它操作触发session销毁操作之后,服务器端会删除相关的session信息。这样即使其它用户知道你的sessionid,也很难假冒你(但是如果此session还在有效期,那么就可以实现session欺骗)。
简单点理解,可以这样打个比方,
比如你要到地下联络站去,在见面之前,你先把自己的一些信息告诉对方,比如name之类(相当于登陆操作),然后对方记录下你的一些信息,并告诉你一个临时的接头暗号(session的创建,把sessionid写到临时cookie里),这个暗号同对方与其他人接头的不会重复。并告诉你晚上7点以前此暗号有效(无任何操作的情况下,session的最长有效期),在7点之前,如果有人知道你的接头暗号,那么别人就可以冒充你。如果在这段时间里,你告诉对方你不来了(主动注销,主动请求释放session),或者到7点了,你也没有去见面(无任何操作,导致session超时,然后被释放),或者主动忘记(浏览器强行关闭)。后面两种情况,是要在7点以后才使得接头暗号无效(服务器在客户端无响应的情况下自动释放session信息)。
sessionid就可以看成是那个临时的接头暗号。