Session是什么
首先了解什么是会话:是指一个终端用户与交互系统进行通讯的过程,比如从用户A输入账户密码进入操作系统到退出操作系统就是一个会话过程。
而session是记录浏览器状态的会话机制,session 对象里存储特定用户会话所需的属性及配置信息。
Session的作用
在web应用里,HTTP是无状态协议的,也就是服务端无法得知用户之前的行为。比如用户A在www.test.com/login.jsp登陆了,而转去www.test.com/shopping.jsp却没了A的登陆信息。
这时就需要session把信息保存在服务器上。用户A在浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是Session。客户端浏览器再次访问时只需要从该Session中查找A的状态就可以了。
简而言之,识别用户并保持用户信息
Session的工作过程
当客户端通过http请求一个页面且用到session时,服务器端会检查客户端是否有对应的session_id(相当于一把钥匙,标识作用),如果没有则创建一个session,同时把此session_id存入到客户端的cookie的PHPSESSID中(这是利用cookie的方法,还有就是通过url重写,把session_id写再url后),以后的访问通过将传输此ID去服务器端,通过检查是否有对应session做出反应
Session的常用方法
方法名:void setAttribute(String attribute, Object value)。
描述:设置Session属性。value参数可以为任何Java Object。通常为java Bean。value信息不宜过大
方法名:String getAttribute(String attribute)。
描述:返回Session属性
方法名:void removeAttribute(String attribute)。
描述:移除Session属性
Session和Cookie的区别
存储位置----session存储在服务器,以文本的形式存储在硬盘;cookie是存储在客户端(浏览器里),存储在内存中
存储大小规格----session高,cookie少
安全性----session安全性高;用户可见cookie且能修改,不安全
存储时间规则----session存10s的话,在第9s时session又被用了,时间又从0开始算;而cookie就按累计时间算