COOKIE 服务器发送到客户端的片段信息 在存储到客户端的内存或者硬盘的技术
cookie的操作:
setcookie($name,$value,$expire,$path,$domain,$secure)
$_COOKIE[]
setcookie($a['b'],'val')
setcookie($name,'',time()-1000)
优点:信息保存在客户端 不会太占用服务器资源 执行效率相对较高
缺点:用户可以禁止cookie
SESSION
session_start();
$_SESSION;
$_SESSION= [];
session_destory();
session配置
session.auto_start
session.cookie_domian
session.cookie_lifetime
session.cookie_path
session.name
session.save_path
session.use_cookie
session.use_trans_sid
//垃圾回收机制
每100次调用session_start()时有一次清除回收session的机会,
清除当前时间戳减去保存时间戳大于1440的session
session.gc_probability=1
session.gc_divisor=100
session.gc_maxlifetime=1440
session.save_handler
传递sessionID的问题
session_name()
session_id()
<a href="1.php?<?php echo session_name().'='.session_id() ?>">下一页</a>
如果开启session SID为空 如果未开启SID 比较智能
<a href="1.php?<?php echo SID; ?>">下一页</a>
如果cookie被禁用掉 session_id无法通过cookie取得session信息
SESSION 存储:
seesion_set_save_handler()
SESSION 以 mysql memcache redis 内存服务器存储
cookie 和session 的区别:
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。