SESSION技术
1.session技术初步
为实现业务逻辑的连续性,将部分信息持久化存储在服务器端,保证数据安全性及各个脚本之间的共享。客户端的状态信息存储在服务器端的SESSION数据区,可在网站的不同页面之间传递数据,识别不同的浏览器。
开启session机制
session_start();
开启session会话或者重用已经创建的会话。session文件默认保存在windows的临时路径tmp中,以sess开头。
session读写操作
session数据的增删改查操作都是通过数组$_SESSION进行的,存储的类型几乎可以为PHP的全部数据类型。数据存储在session文件中,实现同一网站多个页面共享。session数据是基于cookie数据的。
删除一个session数据
unset($_SESSION[名称]);
使用unset语法删除session文件中指定数据,不删除session文件。
删除所有session信息
$_SESSION = [];
$_SESSION设置为空数组。session文件不删除。
销毁session信息
session_destroy();
直接删除session文件,PHP脚本将无法读取session数据。
2.session配置选项
session.name
设置session依赖的cookie中,cookie数据的名称。PHP脚本将当前会话的名称(session文件的名称)返回给cookie,默认保存在对应cookie的PHPSESSID中。
session.cookie_lifetime
按照cookie信息,读取服务器端的相应session文件信息。session.cookie_lifetime=0,表示cookie数据生命周期为会话周期。
session.cookie_path
session所使用的cookie的有效路径
session.cookie_domain
session所使用的cookie的有效域名,默认当前站点有效
3.session与cookie之间的区别与联系
区别
存储位置:
cookie存储在浏览器,session存储在服务器端
数据安全性:
session存储在服务器端,不易获取,更安全
传输数据量:
每次请求,cookie传输量较大。传递该网站相关的全部cookie数据
支持的数据类型:
cookie支持字符串,session支持几乎所有数据类型
联系
- 都用来解决HTTP协议无状态、无记忆的不足之处,以实现业务的连续性
- 都是会话技术的范畴
- session需要依赖cookie进行数据的传递。禁用cookie后,session无法正常使用