目录
4、是否仅限https来发送SESSION对应的COOKIE数据
5、是否仅限http来使用SESSION对应的COOKIE数据
2、垃圾回收的周期:session.gc_maxlifetime
主要内容:
SESSION概述
1、什么是SESSION?
- Session对象存储特定用户的会话数据;
- Session将会话数据存储在服务器端;
- Session是基于Cookie技术的,没有Cookie就没有Session;
- Session在整个用户会话中,一直存在下去;
- 一个用户会话失效:从用户登录开始,到用户登录结束;
- Session存储的数据量要比cookie大的多;
- Session存储的内容类型,不限于字符串;
- Session数据存储在服务器端,更安全,可靠。
2、SESSION的工作原理
3、开启SESSION会话功能
- 描述:启动新会话或者重用现有会话 ;
- 语法:bool session_start (void )
- 提示:$_SESSION变量默认是不存在的,与$_POST、$_GET、$_FILES不一样。因此,必须先开启SESSION,才能使用$_SESSION变量;
- 提示:每个需要SESSION数据的页面,都要开启SESSION功能;
- 注意:SESSION功能,不能重复开启(同一个页面不能开2次);
- 返回:成功开始会话返回 TRUE ,反之返回 FALSE;
提示:SESSION文件的保存位置 c:\windows\temp
SESSION操作
1、添加SESSION数据
- 描述:对Session的管理(增删改查),都是通过超全局数组$_SESSION进行的;
- 语法:$_SESSION[key] = value
- 提示:一个网站不管添加多少个SESSION数据,最终在浏览器端只存储一个SESSION的ID值,该ID值是经过加密的,并且永不重复。Key只能是String类型的数据。
- SESSION文件在服务器端的存储位置:c:\windows\temp
2、读取SESSION数据
- 语法:$value = $_SESSION[key]
- 提示:每次SESSION操作,都要先开SESSION功能;
3、删除SESSION数据
- 使用 unset() 函数,删除一个SESSION数据;
4、销毁SESSION文件
- 描述:删除当前的SESSION文件,不影响其它的SESSION文件。
- 语法:bool session_destroy ( void )
SESSION对应COOKIE的配置(php.ini)
1、SESSION对应COOKIE过期时间设置
修改php.ini配置项:session.cookie_lifetime
2、SESSION对应COOKIE有效路径设置
修改php.ini配置项:session.cookie_path
3、SESSION对应COOKIE域名有效性设置
修改php.ini配置项:session.cookie_domain
4、是否仅限https来发送SESSION对应的COOKIE数据
修改php.ini配置项:session.cookie_secure
5、是否仅限http来使用SESSION对应的COOKIE数据
修改php.ini配置项:session.cookie_httponly
SESSION垃圾回收机制
1、什么是SESSION的垃圾回收机制?
- SESSION垃圾回收, 就是将过期的SESSION服务器文件删除的机制;
- SESSION会自动删除那些过期的服务器端session数据区文件;
- 修改php的配置文件php.ini。
2、垃圾回收的周期:session.gc_maxlifetime
提示:每24分钟清理一次。
3、垃圾回收的概率:session.gc_divisor
回收周期:每24分钟,清理一次SESSION垃圾文件。
回收概率:1/1000,得到一个百分比,如果达到了100%就清理。每1000人访问,才会清理一次。
首先判断时间是否达到24分钟,如果时间达到24分钟,再看访问的人数够不够1000。如果人数够1000,则进行清理,如果人数没有达到1000,则不清理,要等第2个24分钟。