一.Session由来
Session的官方定义是:Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。
说白了Session就是一种可以维持服务器端的数据存储技术。 Session主要有以下的这些特点:
(1)session保存的位置是在服务器端。
(2)session一般来说是要配合cookie使用,如果是浏览器禁用了cookie功能,也就只能够使用URL重写来实现session存储的功能。
(3)单纯的使用session来维持用户状态的话,那么当同时登录的用户数量较多的时候,或者存在较多的数量的session会导致查询慢的问题。
本质上:session技术就是一种基于后端有别于数据库的临时存储数据的技术。
简答来说:怎么保存同个用户多个请求会话状态呢?自然HTTPS保证连接是安全的,可以使它与一个会话关联。
二.Session机制
1)Why have Session?
主要的一个原因就是HTTP的无状态性。因为HTTP的无状态性,所以我们没有办法在HTTP发送请求的时候知道当前用户的状态,也就是比如说,当前是哪个用户的之类的这种信息,所以这个时候我们需要Session来标识当前的状态。
2)What is Session?
Session代表着服务器和客户端一次会话的过程(生命周期)。直到session失效(服务端关闭),或者客户端关闭时结束。
3)How does session works?
Session 是存储在服务端的,并针对每个客户端(客户),通过SessionID来区别不同用户的。Session是以Cookie技术或URL重写实现。默认以Cookie技术实现,服务端会给这次会话创造一个JSESSIONID的Cookie值。
Session的常见实现形式是会话cookie(session cookie),即未设置过期时间的cookie,这个cookie的默认生命周期为浏览器会话期间,只要关闭浏览器