Session机制的原理和使用
来源:互联网 发布:淘宝双十一红包套现 编辑:程序博客网 时间:2024/05/22 05:08
1.1 session的定义
Session是服务端的会话机制,简单理解就是服务端给客户端的一个编号。是指一个终端用户与交互系统进行通信的时间间隔,通常指从登录进入系统到注销退出系统之间所经过的时间。Session不能跨服务器,以文本文件形式存储在服务器端。一般文件形式:
sess_9ii4e9v1np8nh32uuguo8rkkk6
sess_r6q2ls11ajh1me05p07451egb5
1.2 session的工作原理
a.当session被第一次使用时,一个唯一的标识就会被保存在cookie中,生成唯一的一个SESSION ID 在程序中输出$_COOKIE时可发现$_COOKIE [PHPSESSID];
b. 在PHP中使用session_start函数,从session仓库中加载存储的session变量。注意:session_start()前面不能有输出。
c. 执行PHP脚本时,通过session_register()函数注册session变量。(赋值)
d. PHP脚本执行结束时,未被注销的session变量会被保存在指定的session库中,session库路径可以通过
session_save_path函数进行修改。
1.3 session的使用
Session储存用户会话过程中的状态信息,通常被用来保存用户的登录信息,由于session是保存在服务器端的会话,PHP自动修改session文件的读写权限,只有系统的读和写权限,并且不能通过FTP修改,session值没有长度限制,相对安全。
1.3.1 session的有效时间
Session是全局变量,只要页面有提交活动,session会话就会被保持,如果页面在session有效时间内无活动,则会整体失效。一般情况下,关闭浏览器,session会话自动失效。
在PHP中,Session的有效时间可以通过多种方法进行设置:
//session过期时间设置
@ini_set('session.cookie_lifetime', 3600);
@ini_set('session.gc_maxlifetime', 3600);
//session过期时间设置
Setcookie(session_name(),session_id(),time()+$lifeTime,”/”,’域’)
1.3.2 Session的路径设置问题
Session的默认保存路径是在临时文件夹里,对于虚拟主机来说,除了维护困难,也存在一定的安全性问题,一般情况下建议将session路径指向web方式不能访问的具有读写权限的文件夹里。设置session存放目录设置方法:
//session缓存路径
@session_save_path(PATH_DATA.'/session');
session文件并不会自动删除,会一直保存在文件夹中,时间长了,占据大量空间,因此开发者最好进行定期删除,或者编写程序指令定期删除过期的session文件。
1.3.2 session的注销
注销所有session
session_unset();
session_destroy();
注销单个session变量
unset($_SESSION[''user_name]);
1.4 session的缺点
Session保存在服务端虽然相对安全,但是比较消耗服务器内存,当用户登录量越来越多,每个用户都会生成一个唯一的session对象,每个session对象的持续时间是用户访问时间+不活动时间。例如用户访问web应用程序1个小时,session有效时间是1小时,则一个session对象的持续时间是2个小时。如果session中保存了很多对象,这些用户又同时访问web应用程序,那么用于session的持久性的服务器内存就会很大,从而影响可伸缩性。因此在大数据访问量情况下,服务器性能就要相对的提高。
1.5 session的PHP使用解说
在需要判断登陆的页面添加session判断:
if($_SESSION['aid']){...........}
- Session机制的原理和使用
- cookie机制和session机制的原理和区别
- cookie机制和session机制的原理一区别
- session机制和cookie的使用
- 正确理解cookie和session机制原理
- 正确理解cookie和session机制原理
- 正确理解cookie和session机制原理
- SDWebimage的原理和使用机制
- java中cookie机制和session机制的原理与区别
- 手动模拟Session机制的原理
- 简单谈谈session机制的原理
- cookie与session的机制与原理
- cookie机制和session机制的区别
- cookie机制和session机制的区别
- cookie机制和session机制的区别
- cookie机制和session机制的区别
- cookie机制和session机制的区
- cookie机制和session机制的区别
- Windows远程连接ubuntu
- Android 手势识别 (左右滑动)实现 页面 切换
- linux ramdisk 问题
- 第十二周项目二摩托车继承自行车和机动车
- 【问题解决】Project facet Java version 1.7 is not supported.
- Session机制的原理和使用
- 关键字volatile有什么含义?并给出三个不同的例子
- 5.0侧滑菜单(仿QQ)
- libplist源码编译常见错误总结
- 查看java当前线程的堆栈信息
- IOS友盟统计Bug追踪
- 【八】栈的应用实例(二)
- 链队列的简单实现
- 如何理解c和c ++的复杂类型声明