一、会话跟踪技术
- 会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束,再一次会话中可以包含多次请求和响应。
- 会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话的多次请求间共享数据。
- HTTP协议是无状态的,每次浏览器向服务器请求时,服务器都会将该请求视为新的请求,因此我们需要会话跟踪技术来实现会话内数据共享。
- 实现方式:
客户端会话跟踪技术:cookie
服务端会话跟踪技术:session
二、Cookie
1、Cookie的基本使用
- Cookie:客户端会话技术,将数据保存到客户端,以后每次请求都携带Cookie数据进行访问
- Cookie基本使用
2、Cookie原理
3、Cookie使用细节
三、Session
1、Session基本使用
2、Session原理
Session是基于Cookie实现的,Tomcat看到你用的是Session他会自动给Session创建一个Session Id 响应给客户端,也就是在响应头set-cookie中放入JSESSION(就是Session Id),客户端下次访问服务端的时候会在请求头携带cookie进行访问。
3、Session使用细节
Session的超时时长指的是,客户端两次请求的最大间隔时长。
四、Cookie和Session区别
1、存储位置不同:Cookie的数据信息存放在客户端浏览器上,session的数据信息存放在服务器上。
2、存储容量不同:单个cookie保存的数据<=4KB,一个站点最多保存20个Cookie,对于session来说并没有上限,但出于对服务器端的性能考虑,session内不要存放过多的东西,并且设置session删除机制。
3、存储方式不同:Cookie中只能保管ASCII字符串,并需要通过编码方式存储为Unicode字符或者二进制数据,session中能够存储任何类型的数据,包括且不限于string,integer,list,map等。
4、隐私策略不同:Cookie对客户端是可见的,别有用心的人可以分析存放在本地的cookie并进行cookie欺骗,所以它是不安全的,session存储在服务器上,对客户端是透明的,不存在敏感信息泄漏的风险。