会话跟踪技术
-
会话:用户打开浏览器,访问web服务器的资源,会话建立,直到一方断开连接,会话结束。 在一次会话中可以包含多次请求和响应。
-
会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同意浏览器,以便在同一次会话的多次请求间共享数据
原因: -
HTTP协议是无状态的,每次浏览器向服务器请求时,服务器都会将该次请求视为新的请求,因此会话需要跟踪技术来实现会话内数据共享。(HTTP无状态的访问速度比较快,如果HTTP中是有状态的,它会携带一些或大量的数据,使得访问速度变慢)
所以会话技术就是来解决HTTP无状态的
- 1,客户端会话跟踪技术:Cookie
- 2,服务端会话跟踪技术:Session
Cookie基本使用
- Cookie:客户端会话技术,将数据保存到客户端,以后每次都携带Cookie数据进行访问
Session
- 服务端会话跟踪技术:将数据保存到服务端
- Session是基于Cookie实现的
- Session:服务端会话跟踪技术:将数据保存到服务端。
- Session是存储在服务端而Cookie是存储在客户端
- 存储在客户端的数据容易被窃取和截获,存在很多不安全的因素
- 存储在服务端的数据相比于客户端来说就更安全
在当客户端在访问服务端的时候,服务端会生成一个Session,并将数据存储到服务器,并返回给客户端一个id值
当客户端再一次访问服务器时,只需要携带id就可以访问到以前的页面
- 但是Session要是同一个对象才能实现数据共享
服务器重启后,Session中的数据是否还在?
- 经过测试,会发现只要服务器是正常关闭和启动,session中的数据是可以被保存下来的。
- 具体的原因就是:Session的钝化和活化:
钝化:在服务器正常关闭后,Tomcat会自动将Session数据写入硬盘的文件中
活化:再次启动服务器后,从文件中加载数据到Session中数据加载到Session中后,路径中的SESSIONS.ser文件会被删除掉