2020年11月10日:
Session
概念:
服务端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中;
HTTPSession对象
- 获取Session对象:
- request.getSession()
- Session对象的方法:
- setAttribute(String name, Object value)
- Object getAttribute(String name)
- void removeAttribute(String name)
Session原理
在一次会话的范围内,不同的请求可能会都会创建session对象,而且在一次会话的session对象都是同一个。Session是依赖Cookie实现的,实现的过程如下:
- 当某次会话中首次创建Session对象时,会为该Session对象生成一个ID
- 在响应信息的信息头里带着一个SetCookie的头
- 浏览器收到响应信息,在浏览器创建一个 Cookie
- 浏览器下次请求,请求头会带着Cookie
- 当服务器试图创建Session对象时,首先判断内存中是否对应ID为
325803485DF8983D23D
的Session对象,如果有就使用该Session对象
Session的特点:
-
Session是用于存储一次会话的多次请求数据,存储在服务器端
-
session可以存储任意类型的、任意大小的数据
-
与cookie的区别:
Cookie Session 数据存储在客户端 数据存储在服务器端 数据没有大小限制 数据有大小,数量限制 数据相对安全 数据相对不安全