PHP会话控制技术

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。

猜你喜欢

转载自blog.csdn.net/qq_17040587/article/details/82455998