session定义:
在计算机中,尤其在网络应用中,称为“会话”。具体到web中的session指的是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。
session工作原理:
1、当一个session第一次被启用时,一个唯一的标识被存储在本地的cookie中;
2、首先使用session_start()函数,PHP从session仓库中加载已经存储的session变量;
3、当执行PHP脚本时,通过使用session_register函数注册session变量;
4、当PHP脚本执行结束时,未被销毁的session变量会被自动保存在一定路径下的session库中,这个路径可以通过php.ini文件中的session.save_path指定,下次浏览网页时可以加载使用。
session的用法:
1、获取session对象;
2、给session设置值;
3、获取session中的值;
4、删除session中的值。
session的优缺点:
优点:安全性高
缺点;增加服务器压力
session的销毁原因:
1、服务器非正常关闭;
2、session(20分钟)过期。
session的过期时间(20分钟)设置;
1、在Tomcat中的con/web.xml中设置(单位:分钟)
2、在项目的web.xml中设置(单位:分钟)
3、在Java代码中设置(单位:秒)
session与cookie的区别;
1、cookie数据存放在客户的浏览器上,session数据存放在服务器上;
2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全性应该使用session;
3、session会在一定时间内保存在服务器上,当访问增多时会比较影响服务器性能,考虑到减轻服务器压力方面,应当使用cookie;
4、单个cookie在客户端的闲置是3k,也就是一个站点在客户端存放的cookie不能超过3k。
对于session和cookie,个人建议:
将登陆信息等重要信息存放在session
其他信息如需保留,可以存放在cookie