什么是session
Session是另一种记录客户状态的机制,基于Cookie实现,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上
客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是Session,客户端浏览器再次访问时只需要从Session中查找该客户的状态就可以了
session的认证过程
· 用户第一次请求服务器的时候,服务器根据用户提交的相关信息,创建对应的session
· 请求返回时将此session的唯一标识sessionID返回给浏览器
· 浏览器接收服务器返回的sessionID信息后,把该信息存入cookie中
· 当用户第二次访问服务器时,把cookie中的信息一起发送给服务器,服务器从cookie中获取SessionID,根据SessionID查找对应的session信息,如果没有说明没有登录或者登陆失效,
如果找到说明验证成功可以继续操作
Cookie 和 Session 的区别
- 安全性: Session 比 Cookie 安全,Session 是存储在服务器端的,Cookie 是存储在客户端的。
- 存取值的类型不同:Cookie 只支持存字符串数据,想要设置其他类型的数据,需要将其转换成字符串,Session 可以存任意数据类型。
- 有效期不同: Cookie 可设置为长时间保持,比如我们经常使用的默认登录功能,Session 一般失效时间较短,客户端关闭(默认情况下)或者 Session 超时都会失效。
- 存储大小不同: 单个 Cookie 保存的数据不能超过 4K,Session 可存储数据远高于 Cookie,但是当访问量过多,会占用过多的服务器资源。