会话控制
充分理解 seesion和cookie的工作原理
默认存储服务器文件,遍历
$_SESSION数组
lvs
session
session_set_save_handler()
不建议使用文件存储
存储 建议存储 mysql memcache redis等
传递 seesionID的问题
session_name()
session_id()
禁用cookie SID= session_name().'='.session_id() 不禁用为空
简述cookie和session的区别及各自的工作机制 ,存储位置等,简述cookie的优缺点
cookie 服务器发送给客户端的片段信息,存储在客户端浏览器内存或硬盘当中的技术 文件
cookie的操作
写 setcookie($name,$value,$expir,$path,$domain,$secure);
读 $_COOKIE
数组形式setcookie('a[b]','val');
删除setcookie($name,'',time()-1000);
优点缺点
存储客户端 不占用服务器资源 效率会高一些
不建议敏感重要的信息保存cookie 用户可以禁止cookie 一旦cookie被禁止,没有办法保存用户信息了
session 服务端
基于cookie 用户没有权限禁用
存储在服务端的session文件里
seesion id存储cookie里 cookie被禁用 可以通过url传递,保存session状态
配置
seesion.auto_start 是否自动开启 seesionstart
seesion.cookie_domain 存储sessionid cookie的有效域名
seesion.cookie_lifetime 存储sessionid cookie的生命周期
seesion.cookie_path存储sessionid cookie的路径
seesion.name 默认 PHPSESSID
seesion.save_path session存储路径
seesion.use_cookies 是否使用cookie传递 session id
seesion.use_trans_sid 是否使用传递方式传递 session id
垃圾回收机制 配合使用
每100次请求 有1次清空 超期资源-不建议很小
seesion.gc_probability =1 1次
seesion.gc_divisor=100 访问100次清空
seesion.gc_maxlifetime=1440 最大生命周期
seesion.save_handler seesion存储句柄
优点
安全
占用服务器资源
分布式问题
开启session_start();
$_SESSION
删除$_SESSION=[]
删除session_destroy();
为什么要使用会话控制技术
http无状态 保持连续请求 登录状态保持
通过get方式传递 参数丢失 不安全