啥叫Session:直译过来为会话,所谓会话,比如网购,从打开页面到付款完成退出叫做一次会话。
Session的执行机制:当客户端用户向服务器发送一个请求,服务器端就会用一个session来对应,每个不同的User对应不同的Session。
Session机制详解(第一次请求):
①:客户端第一次请求服务端时,服务端会生成一个session对象,用于保存客户信息。每个Session对象都有一个唯一的SessionID,用于区分其它session。
②:服务器端会产生一个cookie,并且该Cookie的name 就是写死的 name = JSESSIONID它的value就是刚才Session的ID,valie = 服务端SessionID的值;
③:然后服务端会在响应客户端的同时,将该Cookie发送给客户端,客户端的Cookie就可以和服务器的Session一一对应起来了(【客户端(Cookie)】JSESSIONID =【服务端】 SessionID);
JSESSIONID详解
当张三第一次请求服务端时,它就会产生一个Session对象,Session对象他会自带了一个SessionID,也就是Session产生的同时会带一个SessionID,然后程序会将SessionID的值复制一份给JSESSIONID,并放入cookie发送给客户端,此时客户端与服务端就一一对应起来了,服务端与客户端是通过Session与Cookie对应起来的。
第二次或更多次的请求:
根据第一次请求产生并复制给客户端的JSESSIONID(Cookiename)与服务端得SessionID进行匹配查找,若找到相同的,则说明已经不是第一次请求(或者已经登录),否则进行Session的分配。
总结:
①:Session存储于服务端,Cookie存储于客户端。
②:Session对象服务于用户,同一个User的请求是共享的(新User请求时未匹配到相同的SessionID,就会给其分配一个SessionID,在Session过期之前User的请求是共享的)
③:实现机制:在第一次客户请求时 产生一个SessionID并赋值给Cookie的JSESSIONID,然后发给客户端,最终通过Session的SessionID和我们Cookie的JSESSIONID实现一个一一对应关系。
参考文章:Session执行机制与原理