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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章