首先需要说明的是,网站是无法根据Session来判断用户是张三还是李四的!因为Session只是服务器端的一种会话存储机制,而会话辨别不能单靠Session来实现,而应该是根据Cookie中的SessionID来辨别会话。
Web会话状态指的是浏览器与服务器端在通信过程中的状态信息,借助会话状态,服务器端可以辨别哪些请求是来自于同一个客户端的。
这里要科普一下,我们访问网站是需要通过协议来访问的,目前Web访问主要是靠HTTP协议或HTTPS协议来实现。HTTP协议本身是无状态的,而HTTPS是在HTTP的基础上加了SSL层以保证数据是加密传输的,所以哪怕是同一个用户(浏览器)向服务器发出多次请求,服务器端也是无法辨别这些请求是否来自于同一个用户(浏览器)。
既然HTTP协议本身不具备会话状态功能,那为了解决会话状态保持的问题,就有了Cookie和Session机制。
Cookie和Session是相互配合使用的,整体流程如下:
1、用户第一次访问Web服务器时,服务器端会生成一个会话,并将会话的唯一标识符(SessionID)作为响应数据种植到客户端浏览器的Cookie中;
2、此用户(浏览器)后续请求都会将本地的Cookie作为请求头发送至服务器端;
3、服务器端获取到客户端传来的Cookie并解析出SessionID,然后凭此SessionID去服务器中找到与之对应的Session。
通俗的说,我们可以把Session当成一个客户资料保险柜,这个数据是机密的所以放在服务器端;而对应的保险柜钥匙(SessionID)是发放给客户手里的(浏览器)。客户想打开保险柜取出里面的数据就必须提供合法的钥匙,如果钥匙合法就能打开保险柜,反之服务器端无法识别钥匙也就无法打开保险柜。
所以说,会话状态的辨别主要是依靠客户端Cookie中的SessionID的,而不是服务器端的Session,服务器端的Session只是用来存储数据的。
以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流~我是科技领域创作者,十年互联网从业经验,我了解更多科技知识!